เชนเซ เชนเชฌเชฐ!
เชเชเซ เชเชชเชฃเซ เชชเชพเชฏเชฅเซเชจเชฎเชพเช เชกเซเชเชพเชจเซ เชเซเชฅเชฌเชฆเซเชง เชเชฐเชตเชพ เช
เชจเซ เชตเชฟเชเซเชฏเซเช
เชฒเชพเชเช เชเชฐเชตเชพ เชฎเชพเชเซ เชเซเชฒเซเชธเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซ เชเซเชถเชณเชคเชพ เชชเชฐ เชเชพเชฎ เชเชฐเซเชถเซเช. เชชเซเชฐเซ เชชเชพเชกเชตเชพเชฎเชพเช เชเชตเซเชฒ เชฎเชพเช
เชชเชฐเชเชชเชฐเชพ เช เชจเซเชธเชพเชฐ, เชถเชฐเซเชเชคเชฎเชพเช, เชเชพเชฒเซ เชฒเชเซเชทเซเชฏเซเชจเซ เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชเชฐเซเช:
- เชฒเชฟเชเช เช เชจเซ เชตเชฐเซเชท เชฆเซเชตเชพเชฐเชพ เชกเซเชเชพเชจเซเช เชเซเชฅ เชฌเชจเชพเชตเซ เช เชจเซ เชฌเชเชจเซ เชเชพเชคเชฟเชจเชพ เชเชจเซเชฎ เชฆเชฐเชจเซ เชเชเชเชฆเชฐ เชเชคเชฟเชถเซเชฒเชคเชพเชจเซ เชตเชฟเชเซเชฏเซเช เชฒเชพเชเช เชเชฐเซ;
- เช เชคเซเชฏเชพเชฐ เชธเซเชงเซเชจเชพ เชธเซเชฅเซ เชฒเซเชเชชเซเชฐเชฟเชฏ เชจเชพเชฎเซ เชถเซเชงเซ;
- เชกเซเชเชพเชฎเชพเชเชจเชพ เชธเชฎเชเซเชฐ เชธเชฎเชฏเชเชพเชณเชพเชจเซ 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