在pandas数据框中拆分一系列成员

时间:2014-07-15 17:45:22

标签: python python-2.7 pandas

我觉得我之前找到了答案,但回头看,我找不到任何东西。

是否有快速,轻松的方法在数据框中拆分特定系列中的字符串?

例如,系列df['a']如下所示:

df['a'] = ['abc 123', 'bcd 2344456jlkj6', 'dfe 456jklj34534', 'akg bg23534535']

我最终想要的只是

df['a'] = ['abc', 'bcd', 'dfe', 'akg']

我最初尝试使用df['a'] = df['a'].str.split(' ')[0],但这只是给了我索引错误。

3 个答案:

答案 0 :(得分:2)

你非常接近,你只需要额外的str

>>> df = pd.DataFrame({"a": ['abc 123', 'bcd 2344456jlkj6', 'dfe 456jklj34534', 'akg bg23534535']})
>>> df["a"].str.split().str[0]
0    abc
1    bcd
2    dfe
3    akg
Name: a, dtype: object

答案 1 :(得分:0)

这应该适合你:

df = pd.DataFrame({"a": ['abc 123', 'bcd 2344456jlkj6', 'dfe 456jklj34534', 'akg bg23534535']})
print df['a']
df2 = []
for num in df['a']:
    df2.append(num.split(' ')[0])

df['a'] = df2

print df['a']

哪个收益率:

0             abc 123
1    bcd 2344456jlkj6
2    dfe 456jklj34534
3      akg bg23534535
Name: a, dtype: object
0    abc
1    bcd
2    dfe
3    akg
Name: a, dtype: object

答案 2 :(得分:0)

In [158]: df
Out[158]: 
                  a
0           abc 123
1  bcd 2344456jlkj6
2  dfe 456jklj34534
3    akg bg23534535

In [159]: df['a'].str.extract(r'^(\w+)')
Out[159]: 
0    abc
1    bcd
2    dfe
3    akg
Name: a, dtype: object