如何在python中拆分DataFrame列

时间:2016-01-12 00:24:50

标签: python pandas dataframe

我有要分割的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

谢谢

2 个答案:

答案 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