ЗАДАЧА: Используя главные мужские и женские имена (всего два имени), проверьте их тренды с течением времени, то есть нанесите на график общее число рождений с этими именами в период с 1990 по 2010 год (рисунок 2).Чтобы сделать это, вам сначала нужно создать сводную таблицу.
Итак, у меня есть главные имена каждого мужчины и женщины, использующие:
g = data.groupby(['name','sex'])['births'].sum().reset_index(name = 'birth_sum')
top_names = g.loc[g.sex == 'F'].head(3).append(g.loc[g.sex == 'M'].head(3))
bottom_names = g.loc[g.sex == 'F'].tail(3).append(g.loc[g.sex == 'M'].tail(3))
print(top_names)
print(bottom_names)
tb_list = pd.concat([top_names, bottom_names], ignore_index = True, sort = False)
print(tb_list)
Данные .csv выглядяткак ...
name sex births year
0 Jessica F 46459 1990
1 Ashley F 45544 1990
2 Brittany F 36532 1990
3 Amanda F 34391 1990
4 Samantha F 25864 1990
5 Sarah F 25803 1990
6 Stephanie F 24853 1990
7 Jennifer F 22218 1990
8 Elizabeth F 20739 1990
9 Lauren F 20498 1990
10 Megan F 20249 1990
11 Emily F 19349 1990
12 Nicole F 17948 1990
13 Kayla F 17534 1990
14 Amber F 15862 1990
15 Rachel F 15692 1990
16 Courtney F 15374 1990
17 Danielle F 14330 1990
18 Heather F 14216 1990
19 Melissa F 13996 1990
20 Rebecca F 13669 1990
21 Michelle F 13408 1990
22 Tiffany F 13160 1990
23 Chelsea F 12782 1990
24 Christina F 11924 1990
25 Katherine F 11613 1990
26 Alyssa F 11259 1990
27 Jasmine F 11034 1990
28 Laura F 10903 1990
29 Hannah F 10276 1990
... .. ... ...
587772 Zecharyah M 5 2009
587773 Zee M 5 2009
587774 Zekariah M 5 2009
587775 Zekhi M 5 2009
587776 Zell M 5 2009
587777 Zepplin M 5 2009
587778 Zequan M 5 2009
587779 Zereon M 5 2009
587780 Zevion M 5 2009
587781 Zhen M 5 2009
587782 Zhyair M 5 2009
587783 Zien M 5 2009
587784 Zier M 5 2009
587785 Zildjian M 5 2009
587786 Zim M 5 2009
587787 Zimir M 5 2009
587788 Ziya M 5 2009
587789 Ziyun M 5 2009
587790 Zlatan M 5 2009
587791 Zoen M 5 2009
587792 Zubayr M 5 2009
587793 Zuhaib M 5 2009
587794 Zykee M 5 2009
587795 Zykell M 5 2009
587796 Zylar M 5 2009
587797 Zyquarius M 5 2009
587798 Zyran M 5 2009
587799 Zyreion M 5 2009
587800 Zyrian M 5 2009
587801 Zyvion M 5 2009
Я устал использовать ...
top2 = g.loc[g.sex == 'F'].head(1).append(g.loc[g.sex == 'M'].head(1))
print(top2)
pivot2 = top2.pivot_table(['birth_sum'], index = ['name','sex'])
print(pivot2)
male = data.loc[data.name == 'Aaban']
female = data.loc[data.name == 'Aabriella']
print(male)
print(female)
names = pd.concat([male, female], ignore_index = True, sort = False)
print(names)
pivot3 = names.pivot_table(['births'], index = ['name','sex', 'year'])
print(pivot3)
fig1 = plt.figure()
ax1 = fig1.add_subplot(1, 1, 1)
ax1.plot(pivot3['M'], linestyle="--", color="k", label="M")
ax1.plot(pivot3['F'], linestyle="--", color="b", label="F")
ax1.tick_params(rotation=90)
ax1.legend(loc="best")