我觉得我以前就找到了这个问题的答案,但是回头看我什么也没找到。
是否有一种快速、轻松的方法来拆分数据框架中特定序列中的字符串?
例如,系列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]
,但这只是给我索引错误。
你很接近了,你只需要在那里添加一个额外的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
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
这应该可以为您工作:
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