在pandas数据帧中如何应用一种excel('state',2)只取前两个字母.理想情况下,我想学习如何在数据帧中使用left,right和mid.因此,对于此特定示例,需要等效而非"技巧".
data = {'state': ['Auckland', 'Otago', 'Wellington', 'Dunedin', 'Hamilton'],
'year': [2000, 2001, 2002, 2001, 2002],
'pop': [1.5, 1.7, 3.6, 2.4, 2.9]}
df = pd.DataFrame(data)
print df
pop state year
0 1.5 Auckland 2000
1 1.7 Otago 2001
2 3.6 Wellington 2002
3 2.4 Dunedin 2001
4 2.9 Hamilton 2002
Run Code Online (Sandbox Code Playgroud)
我想得到这个:
pop state year StateInitial
0 1.5 Auckland 2000 Au
1 1.7 Otago 2001 Ot
2 3.6 Wellington 2002 We
3 2.4 Dunedin 2001 Du
4 2.9 Hamilton 2002 Ha
Run Code Online (Sandbox Code Playgroud)
alk*_*lko 78
列中每个值的前两个字母:
>>> df['StateInitial'] = df['state'].str[:2]
>>> df
pop state year StateInitial
0 1.5 Auckland 2000 Au
1 1.7 Otago 2001 Ot
2 3.6 Wellington 2002 We
3 2.4 Dunedin 2001 Du
4 2.9 Hamilton 2002 Ha
Run Code Online (Sandbox Code Playgroud)
最后两个是df['state'].str[-2:].不知道你想要什么中间,但你可以使用apply方法将任意函数应用于列:
>>> df['state'].apply(lambda x: x[len(x)/2-1:len(x)/2+1])
0 kl
1 ta
2 in
3 ne
4 il
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
78396 次 |
| 最近记录: |