Ich lerne Pandas und ich möchte eine neue Spalte zu meinen Daten erstellen (ich verwende die nationalen Namen Daten).neue Spalte hinzufügen und Verhältnis berechnen
Ich benutze nur 1880 und 1881 Jahre.
name sex births year
0 Mary F 7065 1880
1 Anna F 2604 1880
2 Emma F 2003 1880
3 Elizabeth F 1939 1880
4 Worthy M 5 1880
5 Wright M 5 1880
6 York M 5 1880
7 Zachariah M 5 1880
8 Mary F 6919 1881
9 Anna F 2698 1881
10 Emma F 2034 1881
11 Elizabeth F 1852 1881
12 Wilton M 5 1881
13 Wing M 5 1881
14 Wood M 5 1881
15 Wright M 5 1881
Ich bin die Geburten insgesamt Daten zu erstellen:
total_births = names.pivot_table('births', index='year', columns='sex', aggfunc=sum)
die gibt:
sex F M
year
1880 13611 20
1881 13503 20
Jetzt mag ich eine weitere Spalte in den Daten schaffen, wo ich das Verhältnis gesetzt werde von Geburten pro Jahr zu den Geburten pro Jahr.
Zum Beispiel:
name sex births year ratio
Mary F 7065 1880 7065/13611
Wilton M 5 1881 5/13503
Ich versuche:
new = (names.groupby(['year', 'sex'])).assign(ratio= (names.groupby(['year','sex'])).names['births']/total_births)
die gibt:
AttributeError: Cannot access callable attribute 'assign' of 'DataFrameGroupBy' objects, try using the 'apply' method
ODER
Ich habe versucht, zu brechen:
ratio = names.groupby(['year','sex'])
ratio1 = ratio.loc[:,'births']
aber es gibt:
AttributeError: Cannot access callable attribute 'loc' of 'DataFrameGroupBy' objects, try using the 'apply' method
Können Sie eine kleine Datenprobe und die gewünschte Ausgabe hinzufügen? – jezrael
Vielleicht helfen sehr gute Antworten - [Wie man gute reproduzierbare Pandas Beispiele macht] (http://stackoverflow.com/questions/20109391/how-to-make-good-reproducible-pandas-examples) – jezrael
@jezrael: Hallo, ich bearbeitet, danke – George