แฐแแ แฐแแแ !
แแฆแแก แฉแแแ แแแแฃแจแแแแแ แแแแแแจแ แแแแแชแแแแแแก แแแฏแแฃแคแแแแกแ แแ แแแแฃแแแแแแชแแแก แแแกแขแ แฃแแแแขแแแแก แแแแแงแแแแแแก แฃแแแ แแ. แแแฌแแแแแฃแแจแ
แขแ แแแแชแแแก แแแฎแแแแแ, แแแกแแฌแงแแกแจแ แแแแแกแแแฆแแ แแ แแแแแแแ:
- แแแแฏแแฃแคแแ แแแแแชแแแแแ แกแฅแแกแแก แแ แฌแแแก แแแฎแแแแแ แแ แฌแแ แแแแแแแแแ แแ แแแ แกแฅแแกแแก แจแแแแแแแแก แกแแแ แแ แแแแแแแแ;
- แแแแแแแ แงแแแแ แแ แแแก แงแแแแแแ แแแแฃแแแ แฃแแ แกแแฎแแแแแ;
- แแแงแแแแ แแแแแชแแแแแแก แแแแแ แแแ แแแแ 10 แแแฌแแแแ แแ แแแแแแ แแแแแแฃแแ แกแฅแแกแแก แงแแแแแแ แแแแฃแแแ แฃแแ แกแแฎแแแ. แแแแแแฃแแ แแแแแแแ แกแแฎแแแแกแแแแก, แฌแแ แแแแแแแแแ แแแกแ แแแแแแแแ แงแแแแ แแ แแแก แแแแแแแแแแแจแ;
- แงแแแแแ แฌแแแกแแแแก แแแแแแแแแแ แ แแแแแแ แกแแฎแแแ แแแแชแแแก แแแแแแแแแแแก 50%-แก แแ แฌแแ แแแแแแแแแ (แฉแแแ แแแแแแแฎแแแ แกแแฎแแแแแแก แแ แแแแแคแแ แแแแแแแก แงแแแแแ แฌแแแกแแแแก);
- แแแ แฉแแแ 4 แฌแแแ แแแแแ แแแขแแ แแแแแแแ แแ แแฉแแแแแ แงแแแแแ แฌแแแก แแแแแฌแแแแแ แกแแฎแแแแก แแแ แแแแ แแกแแแแแ แแ แกแแฎแแแแก แแแแ แแกแแแแแ;
- แจแแแแแแแแ แ แแแแแแแแ แชแแแแแแ แแแแแแแแแก แกแแ (แแ แแแแแแแขแแแ, แแแแฆแแ แแแแ, แแกแแฎแแแแแแ, แแแแแแแแ แแแ) แแ แจแแแคแแกแแ แแแแ แแแแแแแ แกแแฎแแแแแแก แแแแแแแแแแ. แจแแฅแแแแแ แแแแฃแแแแแแชแแ.
แแแแแแแ แกแแขแงแแ, แแแขแ แแแแ!
แแ, แฌแแแแแแ.
แแแแแ แแแแแฏแแฃแคแแ แแแแแชแแแแแ แกแฅแแกแแก แแ แฌแแแก แแแฎแแแแแ แแ แฌแแ แแแแแแแแแแ แแ แแแ แกแฅแแกแแก แจแแแแแแแแก แกแแแ แแ แแแแแแแแ:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
years = np.arange(1880, 2011, 3)
datalist = 'https://raw.githubusercontent.com/wesm/pydata-book/2nd-edition/datasets/babynames/yob{year}.txt'
dataframes = []
for year in years:
dataset = datalist.format(year=year)
dataframe = pd.read_csv(dataset, names=['name', 'sex', 'count'])
dataframes.append(dataframe.assign(year=year))
result = pd.concat(dataframes)
sex = result.groupby('sex')
births_men = sex.get_group('M').groupby('year', as_index=False)
births_women = sex.get_group('F').groupby('year', as_index=False)
births_men_list = births_men.aggregate(np.sum)['count'].tolist()
births_women_list = births_women.aggregate(np.sum)['count'].tolist()
fig, ax = plt.subplots()
fig.set_size_inches(25,15)
index = np.arange(len(years))
stolb1 = ax.bar(index, births_men_list, 0.4, color='c', label='ะัะถัะธะฝั')
stolb2 = ax.bar(index + 0.4, births_women_list, 0.4, alpha=0.8, color='r', label='ะะตะฝัะธะฝั')
ax.set_title('ะ ะพะถะดะฐะตะผะพััั ะฟะพ ะฟะพะปั ะธ ะณะพะดะฐะผ')
ax.set_xlabel('ะะพะดะฐ')
ax.set_ylabel('ะ ะพะถะดะฐะตะผะพััั')
ax.set_xticklabels(years)
ax.set_xticks(index + 0.4)
ax.legend(loc=9)
fig.tight_layout()
plt.show()
แแแแ แแแแแแแ แแกแขแแ แแแจแ แงแแแแแแ แแแแฃแแแ แฃแแ แกแแฎแแแแแ:
years = np.arange(1880, 2011)
dataframes = []
for year in years:
dataset = datalist.format(year=year)
dataframe = pd.read_csv(dataset, names=['name', 'sex', 'count'])
dataframes.append(dataframe)
result = pd.concat(dataframes)
names = result.groupby('name', as_index=False).sum().sort_values('count', ascending=False)
names.head(10)
แแแแแ แแแแงแแ แแแแแชแแแแแแก แแแแแ แแแ แแแแ 10 แแแฌแแแแ แแ แแแแแแฃแแแกแแแแก แแแแแแแ แแแแแแฃแแ แกแฅแแกแแก แงแแแแแแ แแแแฃแแแ แฃแ แกแแฎแแแก. แแแแแแแ แแแแแแฃแแ แกแแฎแแแแกแแแแก, แฉแแแ แแแแฃแแแฃแ แแ แแฎแแแแแแ แแแก แแแแแแแแแก แงแแแแ แแ แแแก แแแแแแแแแแแจแ:
years = np.arange(1880, 2011)
part_size = int((years[years.size - 1] - years[0]) / 10) + 1
parts = {}
def GetPart(year):
return int((year - years[0]) / part_size)
for year in years:
index = GetPart(year)
r = years[0] + part_size * index, min(years[years.size - 1], years[0] + part_size * (index + 1))
parts[index] = str(r[0]) + '-' + str(r[1])
dataframe_parts = []
dataframes = []
for year in years:
dataset = datalist.format(year=year)
dataframe = pd.read_csv(dataset, names=['name', 'sex', 'count'])
dataframe_parts.append(dataframe.assign(years=parts[GetPart(year)]))
dataframes.append(dataframe.assign(year=year))
result_parts = pd.concat(dataframe_parts)
result = pd.concat(dataframes)
result_parts_sums = result_parts.groupby(['years', 'sex', 'name'], as_index=False).sum()
result_parts_names = result_parts_sums.iloc[result_parts_sums.groupby(['years', 'sex'], as_index=False).apply(lambda x: x['count'].idxmax())]
result_sums = result.groupby(['year', 'sex', 'name'], as_index=False).sum()
for groupName, groupLabels in result_parts_names.groupby(['name', 'sex']).groups.items():
group = result_sums.groupby(['name', 'sex']).get_group(groupName)
fig, ax = plt.subplots(1, 1, figsize=(18,10))
ax.set_xlabel('ะะพะดะฐ')
ax.set_ylabel('ะ ะพะถะดะฐะตะผะพััั')
label = group['name']
ax.plot(group['year'], group['count'], label=label.aggregate(np.max), color='b', ls='-')
ax.legend(loc=9, fontsize=11)
plt.show()
แงแแแแแ แฌแแแกแแแแก, แฉแแแ แแแแแแแ แแจแแแ แ แแแแแแ แกแแฎแแแ แแแแชแแแก แแแแแแแแแแแก 50% -แก แแ แแแแฃแแแฃแ แแ แฌแแ แแแแแแแแแ แแ แแแแแชแแแแแก:
dataframe = pd.DataFrame({'year': [], 'count': []})
years = np.arange(1880, 2011)
for year in years:
dataset = datalist.format(year=year)
csv = pd.read_csv(dataset, names=['name', 'sex', 'count'])
names = csv.groupby('name', as_index=False).aggregate(np.sum)
names['sum'] = names.sum()['count']
names['percent'] = names['count'] / names['sum'] * 100
names = names.sort_values(['percent'], ascending=False)
names['cum_perc'] = names['percent'].cumsum()
names_filtered = names[names['cum_perc'] <= 50]
dataframe = dataframe.append(pd.DataFrame({'year': [year], 'count': [names_filtered.shape[0]]}))
fig, ax1 = plt.subplots(1, 1, figsize=(22,13))
ax1.set_xlabel('ะะพะดะฐ', fontsize = 12)
ax1.set_ylabel('ะ ะฐะทะฝะพะพะฑัะฐะทะธะต ะธะผะตะฝ', fontsize = 12)
ax1.plot(dataframe['year'], dataframe['count'], color='r', ls='-')
ax1.legend(loc=9, fontsize=12)
plt.show()
แแแแแ แแแแ แฉแแแ 4 แฌแแแ แแแแแ แแแขแแ แแแแแแแ แแ แแแแแแแแแแแแ แงแแแแแ แฌแแแก แแแแแฌแแแแแ แกแแฎแแแแก แแแ แแแแ แแกแแแแแ แแ แกแแฎแแแแก แแแแ แแกแแแแแ:
from string import ascii_lowercase, ascii_uppercase
fig_first, ax_first = plt.subplots(1, 1, figsize=(14,10))
fig_last, ax_last = plt.subplots(1, 1, figsize=(14,10))
index = np.arange(len(ascii_uppercase))
years = [1944, 1978, 1991, 2003]
colors = ['r', 'g', 'b', 'y']
n = 0
for year in years:
dataset = datalist.format(year=year)
csv = pd.read_csv(dataset, names=['name', 'sex', 'count'])
names = csv.groupby('name', as_index=False).aggregate(np.sum)
count = names.shape[0]
dataframe = pd.DataFrame({'letter': [], 'frequency_first': [], 'frequency_last': []})
for letter in ascii_uppercase:
countFirst = (names[names.name.str.startswith(letter)].count()['count'])
countLast = (names[names.name.str.endswith(letter.lower())].count()['count'])
dataframe = dataframe.append(pd.DataFrame({
'letter': [letter],
'frequency_first': [countFirst / count * 100],
'frequency_last': [countLast / count * 100]}))
ax_first.bar(index + 0.3 * n, dataframe['frequency_first'], 0.3, alpha=0.5, color=colors[n], label=year)
ax_last.bar(index + bar_width * n, dataframe['frequency_last'], 0.3, alpha=0.5, color=colors[n], label=year)
n += 1
ax_first.set_xlabel('ะัะบะฒะฐ ะฐะปัะฐะฒะธัะฐ')
ax_first.set_ylabel('ะงะฐััะพัะฐ, %')
ax_first.set_title('ะะตัะฒะฐั ะฑัะบะฒะฐ ะฒ ะธะผะตะฝะธ')
ax_first.set_xticks(index)
ax_first.set_xticklabels(ascii_uppercase)
ax_first.legend()
ax_last.set_xlabel('ะัะบะฒะฐ ะฐะปัะฐะฒะธัะฐ')
ax_last.set_ylabel('ะงะฐััะพัะฐ, %')
ax_last.set_title('ะะพัะปะตะดะฝัั ะฑัะบะฒะฐ ะฒ ะธะผะตะฝะธ')
ax_last.set_xticks(index)
ax_last.set_xticklabels(ascii_uppercase)
ax_last.legend()
fig_first.tight_layout()
fig_last.tight_layout()
plt.show()
แแแแแ แจแแแแแแแแแ แ แแแแแแแแ แชแแแแแแ แแแแแแแแแก แกแแ (แแ แแแแแแแขแแแ, แแแแฆแแ แแแแ, แแกแแฎแแแแแแ, แแแแแแแแ แแแ) แแ แจแแแแคแแกแแ แแแแ แแแแแแแ แกแแฎแแแแแแก แแแแแแแแแแ:
celebrities = {'Frank': 'M', 'Britney': 'F', 'Madonna': 'F', 'Bob': 'M'}
dataframes = []
for year in years:
dataset = datalist.format(year=year)
dataframe = pd.read_csv(dataset, names=['name', 'sex', 'count'])
dataframes.append(dataframe.assign(year=year))
result = pd.concat(dataframes)
for celebrity, sex in celebrities.items():
names = result[result.name == celebrity]
dataframe = names[names.sex == sex]
fig, ax = plt.subplots(1, 1, figsize=(16,8))
ax.set_xlabel('ะะพะดะฐ', fontsize = 10)
ax.set_ylabel('ะ ะพะถะดะฐะตะผะพััั', fontsize = 10)
ax.plot(dataframe['year'], dataframe['count'], label=celebrity, color='r', ls='-')
ax.legend(loc=9, fontsize=12)
plt.show()
แขแ แแแแแแแกแแแแก, แจแแแแซแแแแ แแแแแแขแแ แชแแแแแแ แแแแแแแแแแแก แชแฎแแแ แแแแก แแแ แแแแ แแแแฃแแแแแแชแแแก แแแแ แแแแแแแแแแแ, แ แแแ แแแแแแ แจแแแคแแกแแ แแแแ แแแแแแแ แกแแฎแแแแแแก แแแแแแแแแแ.
แแแแ แฉแแแแ แงแแแแ แแแแแแ แแแฆแฌแแฃแแ แแ แแกแ แฃแแแ. แฉแแแ แแแแแแแแฃแจแแแแ แแแแแแจแ แแแแแชแแแแแแก แแแฏแแฃแคแแแแกแ แแ แแแแฃแแแแแแชแแแก แแแกแขแ แฃแแแแขแแแแก แแแแแงแแแแแแก แฃแแแ แ แแ แแแแแแ แซแแแแแ แแแแแชแแแแแแแ แแฃแจแแแแแก. แงแแแแแก แจแแฃแซแแแ แแแกแแแแแแแก แแแแแแแแ แแแ, แแแแฃแแแแแแแฃแ แแแแแชแแแแแแ แแแงแ แแแแแแ.
แชแแแแ แงแแแแแก!
แฌแงแแ แ: www.habr.com