使用.apply() 对列中的每个元素执行一些函数
import pandas as pd
data=[
'Town 1, AL, USA',
'Town 2, AL, USA',
'Town 3, AK, USA',
'Town 4, CA, USA',
'Town 5, DE, USA',
'Town 6, MI, USA',
]
df = pd.DataFrame( data )
print df
df['state'] = df[0].apply(lambda x: x.split(',')[1])
print df
结果
0
0 Town 1, AL, USA
1 Town 2, AL, USA
2 Town 3, AK, USA
3 Town 4, CA, USA
4 Town 5, DE, USA
5 Town 6, MI, USA
0 state
0 Town 1, AL, USA AL
1 Town 2, AL, USA AL
2 Town 3, AK, USA AK
3 Town 4, CA, USA CA
4 Town 5, DE, USA DE
5 Town 6, MI, USA MI
编辑:
顺便说一句:我在互联网上搜索pandas split column to new columns,您甚至可以通过这种方式将其拆分为 3 个新列:
def split_more(x):
return pd.Series( x.split(',') )
df[ ['town', 'state','country'] ] = df[0].apply(split_more)
print df
结果:
0 town state country
0 Town 1, AL, USA Town 1 AL USA
1 Town 2, AL, USA Town 2 AL USA
2 Town 3, AK, USA Town 3 AK USA
3 Town 4, CA, USA Town 4 CA USA
4 Town 5, DE, USA Town 5 DE USA
5 Town 6, MI, USA Town 6 MI USA