我试图使用apply将多列分隔字符串拆分为4列,每个列在版本0.25.3上。
通过使用.apply和.str.split,我可以得到如下所示的列表列
import pandas as pd
df = pd.DataFrame({'A':['9;1;8;11', '2;10;8;11', '9;4;7;10'], 'B':['0;1;6;2', '2;6;6;3', '2;1;1;2']})
df.apply(lambda x: x.str.split(';'), axis=1)产出:
A B
0 [9, 1, 8, 11] [0, 1, 6, 2]
1 [2, 10, 8, 11] [2, 6, 6, 3]
2 [9, 4, 7, 10] [2, 1, 1, 2]这使我相信,正如result_type='expand'解释的那样,简单地添加文档应该将列表扩展为单独的列,
将结果_type=‘展开’传递给Dataframe的列,将展开类似列表的结果。
然而,
df.apply(lambda x: x.str.split(';'), axis=1, result_type='expand')返回完全相同的结果:
A B
0 [9, 1, 8, 11] [0, 1, 6, 2]
1 [2, 10, 8, 11] [2, 6, 6, 3]
2 [9, 4, 7, 10] [2, 1, 1, 2]我在这里错过了什么?
发布于 2020-08-04 01:27:10
str.split是一个用于系列的函数,如果我们喜欢将它用于数据格式,我们可以
df=pd.concat([df[x].str.split(';',expand=True) for x in df.columns],axis=1)
Out[37]:
0 1 2 3 0 1 2 3
0 9 1 8 11 0 1 6 2
1 2 10 8 11 2 6 6 3
2 9 4 7 10 2 1 1 2https://stackoverflow.com/questions/63238976
复制相似问题