我有要分割的DataFrame列。 例如:
0 1 2
0 a b c-d-e
1 f g h-i-j
2 k l m-n-o
信息存储在DataFrame中。如何将数据框更改为此?
0 1 2 3 4
0 a b c d e
1 f g h i j
2 k l m n o
谢谢
答案 0 :(得分:1)
您正在寻找Series.str.split
>>> print df[2].str.split('-', expand=True)
0 1 2
0 c d e
1 h i j
2 m n o
>>> pd.concat((df[[0, 1]], df[2].str.split('-', expand=True)), axis=1, ignore_index=True)
0 1 2 3 4
0 a b c d e
1 f g h i j
2 k l m n o
如果你使用的是超过0.16.1的pandas,你想使用return_type='frame'
代替expand=True
答案 1 :(得分:0)
您可以使用DataFrame
构造函数:
print df
# 0 1 2
#0 a b c-d-e
#1 f g h-i-j
#2 k l m-n-o
df[[2, 3, 4]] = pd.DataFrame([ x.split('-') for x in df[2].tolist() ])
print df
# 0 1 2 3 4
#0 a b c d e
#1 f g h i j
#2 k l m n o