dans un cadre de données de pandas, comment puis-je appliquer une sorte d'Excel à gauche ('state', 2) pour ne prendre que les deux premières lettres. Idéalement, je veux aussi apprendre à utiliser left, right et mid dans un cadre de données. Il faut donc un équivalent et non un "truc" pour cet exemple spécifique.
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
Je veux avoir ceci:
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
Deux premières lettres pour chaque valeur dans une colonne:
>>> 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
Pour les deux derniers, ce serait df['state'].str[-2:]
. Je ne sais pas ce que vous voulez exactement pour le milieu, mais vous pouvez appliquer une fonction arbitraire à une colonne avec la méthode 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
En ce qui concerne le milieu, un code de raccourci serait probablement df ['state']. str [3,5]
cela commence à partir du 3ème caractère et vous donne les 3ème et 4ème caractères de la chaîne.