例如,我有一个数据集:
df = pd.DataFrame({'x':[1,5,7,8], 'y':['12,4', '1,6,7', '8,3,2', '1']})我想拆分y列,命令它,并将逗号(',')改为破折号('-'),如下所示:
x y
0 1 4-12
1 5 1-6-7
2 7 2-3-8
3 8 1我尝试过使用apply,但它显示了TypeError:只能加入一个可迭代的
df['y'] = df['y'].str.split(',')
df['y'] = df['y'].apply(lambda x : '-'.join(x.sort()))我的密码怎么了?
发布于 2021-05-29 04:00:26
我会这样做的:
df.y.str.split(',').map(lambda items : sorted(items, key=int)).str.join('-')第一步是像以前一样拆分,然后使用map,它接受一个任意函数来转换Series的每个元素(也就是说,每个列表)。在您的例子中,您希望排序,但数字不是字符串,因此key=int。最后,加入-。
https://stackoverflow.com/questions/67747547
复制相似问题