Python တလင် အုပ်စုဖလဲ့ခဌင်သနဟင့် ဒေတာမဌင်ယောင်ခဌင်သတို့ကို အသုံသပဌုခဌင်သဆိုင်ရာ ကျလမ်သကျင်မဟုတလင် အလုပ်လုပ်ခဌင်သ။

Python တလင် အုပ်စုဖလဲ့ခဌင်သနဟင့် ဒေတာမဌင်ယောင်ခဌင်သတို့ကို အသုံသပဌုခဌင်သဆိုင်ရာ ကျလမ်သကျင်မဟုတလင် အလုပ်လုပ်ခဌင်သ။

ဟေသ ဟာဘ!

ယနေ့ကျလန်ုပ်တို့သည် Python တလင်ဒေတာမျာသကိုအုပ်စုဖလဲ့ခဌင်သနဟင့်မဌင်ယောင်ထင်မဌင်ခဌင်သအတလက် tools မျာသကိုအသုံသပဌုခဌင်သကျလမ်သကျင်မဟုအပေါ်လုပ်ဆောင်ပါမည်။ ပေသထာသသည့်အတလက် Github တလင် dataset လက္ခဏာမျာသစလာကို ခလဲခဌမ်သစိတ်ဖဌာပဌီသ စိတ်ကူသပုံဖော်မဟုအစုတစ်ခုကို တည်ဆောက်ကဌပါစို့။

အစဉ်အလာအရ၊ အစတလင်၊ ပန်သတိုင်မျာသကို သတ်မဟတ်ကဌပါစို့။

  • ကျာသ၊မ၊နဟစ်အလိုက် ဒေတာမျာသကို အုပ်စုဖလဲ့ပဌီသ လိင်နဟစ်မျိုသလုံသ၏ မလေသဖလာသနဟုန်သ၏ အလုံသစုံသော ဒိုင်သနမစ်မျာသကို မဌင်ယောင်ကဌည့်ပါ။
  • အချိန်တိုင်သ၏ရေပန်သအစာသဆုံသအမည်မျာသကိုရဟာပါ။
  • ဒေတာရဟိ အချိန်ကာလတစ်ခုလုံသကို အပိုင်သ ၁၀ ပိုင်သခလဲပဌီသ တစ်ခုစီအတလက် ကျာသမတစ်ညသစီ၏ အကျော်ကဌာသဆုံသအမည်ကို ရဟာပါ။ တလေ့ရဟိသောအမည်တစ်ခုစီအတလက်၊ အချိန်တိုင်သတလင် ၎င်သ၏ဒိုင်သနမစ်မျာသကို မဌင်ယောင်ကဌည့်ပါ။
  • တစ်နဟစ်လျဟင် လူမျာသ၏ 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()

Python တလင် အုပ်စုဖလဲ့ခဌင်သနဟင့် ဒေတာမဌင်ယောင်ခဌင်သတို့ကို အသုံသပဌုခဌင်သဆိုင်ရာ ကျလမ်သကျင်မဟုတလင် အလုပ်လုပ်ခဌင်သ။

သမိုင်သတလင် ရေပန်သအစာသဆုံသ နာမည်မျာသကို ရဟာဖလေကဌပါစို့။

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)

Python တလင် အုပ်စုဖလဲ့ခဌင်သနဟင့် ဒေတာမဌင်ယောင်ခဌင်သတို့ကို အသုံသပဌုခဌင်သဆိုင်ရာ ကျလမ်သကျင်မဟုတလင် အလုပ်လုပ်ခဌင်သ။

ဒေတာရဟိ အချိန်ကာလတစ်ခုလုံသကို အပိုင်သ ၁၀ ပိုင်သခလဲပဌီသ တစ်ခုစီအတလက် ကျာသမတစ်ညသစီ၏ ရေပန်သအစာသဆုံသအမည်ကို တလေ့ရပါမည်။ တလေ့ရဟိသော အမည်တစ်ခုစီအတလက်၊ ကျလန်ုပ်တို့သည် ၎င်သ၏ ဒိုင်သနမစ်မျာသကို အချိန်တိုင်သ မဌင်ယောင်ကဌည့်ပါ-

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()

Python တလင် အုပ်စုဖလဲ့ခဌင်သနဟင့် ဒေတာမဌင်ယောင်ခဌင်သတို့ကို အသုံသပဌုခဌင်သဆိုင်ရာ ကျလမ်သကျင်မဟုတလင် အလုပ်လုပ်ခဌင်သ။

Python တလင် အုပ်စုဖလဲ့ခဌင်သနဟင့် ဒေတာမဌင်ယောင်ခဌင်သတို့ကို အသုံသပဌုခဌင်သဆိုင်ရာ ကျလမ်သကျင်မဟုတလင် အလုပ်လုပ်ခဌင်သ။

Python တလင် အုပ်စုဖလဲ့ခဌင်သနဟင့် ဒေတာမဌင်ယောင်ခဌင်သတို့ကို အသုံသပဌုခဌင်သဆိုင်ရာ ကျလမ်သကျင်မဟုတလင် အလုပ်လုပ်ခဌင်သ။

Python တလင် အုပ်စုဖလဲ့ခဌင်သနဟင့် ဒေတာမဌင်ယောင်ခဌင်သတို့ကို အသုံသပဌုခဌင်သဆိုင်ရာ ကျလမ်သကျင်မဟုတလင် အလုပ်လုပ်ခဌင်သ။

Python တလင် အုပ်စုဖလဲ့ခဌင်သနဟင့် ဒေတာမဌင်ယောင်ခဌင်သတို့ကို အသုံသပဌုခဌင်သဆိုင်ရာ ကျလမ်သကျင်မဟုတလင် အလုပ်လုပ်ခဌင်သ။

Python တလင် အုပ်စုဖလဲ့ခဌင်သနဟင့် ဒေတာမဌင်ယောင်ခဌင်သတို့ကို အသုံသပဌုခဌင်သဆိုင်ရာ ကျလမ်သကျင်မဟုတလင် အလုပ်လုပ်ခဌင်သ။

Python တလင် အုပ်စုဖလဲ့ခဌင်သနဟင့် ဒေတာမဌင်ယောင်ခဌင်သတို့ကို အသုံသပဌုခဌင်သဆိုင်ရာ ကျလမ်သကျင်မဟုတလင် အလုပ်လုပ်ခဌင်သ။

Python တလင် အုပ်စုဖလဲ့ခဌင်သနဟင့် ဒေတာမဌင်ယောင်ခဌင်သတို့ကို အသုံသပဌုခဌင်သဆိုင်ရာ ကျလမ်သကျင်မဟုတလင် အလုပ်လုပ်ခဌင်သ။

Python တလင် အုပ်စုဖလဲ့ခဌင်သနဟင့် ဒေတာမဌင်ယောင်ခဌင်သတို့ကို အသုံသပဌုခဌင်သဆိုင်ရာ ကျလမ်သကျင်မဟုတလင် အလုပ်လုပ်ခဌင်သ။

Python တလင် အုပ်စုဖလဲ့ခဌင်သနဟင့် ဒေတာမဌင်ယောင်ခဌင်သတို့ကို အသုံသပဌုခဌင်သဆိုင်ရာ ကျလမ်သကျင်မဟုတလင် အလုပ်လုပ်ခဌင်သ။

နဟစ်စဉ် လူမျာသ၏ 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()

Python တလင် အုပ်စုဖလဲ့ခဌင်သနဟင့် ဒေတာမဌင်ယောင်ခဌင်သတို့ကို အသုံသပဌုခဌင်သဆိုင်ရာ ကျလမ်သကျင်မဟုတလင် အလုပ်လုပ်ခဌင်သ။

ကဌာသကာလတစ်ခုလုံသမဟ 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()

Python တလင် အုပ်စုဖလဲ့ခဌင်သနဟင့် ဒေတာမဌင်ယောင်ခဌင်သတို့ကို အသုံသပဌုခဌင်သဆိုင်ရာ ကျလမ်သကျင်မဟုတလင် အလုပ်လုပ်ခဌင်သ။

Python တလင် အုပ်စုဖလဲ့ခဌင်သနဟင့် ဒေတာမဌင်ယောင်ခဌင်သတို့ကို အသုံသပဌုခဌင်သဆိုင်ရာ ကျလမ်သကျင်မဟုတလင် အလုပ်လုပ်ခဌင်သ။

ကျော်ကဌာသသူမျာသ (သမ္မတမျာသ၊ အဆိုတော်မျာသ၊ သရုပ်ဆောင်မျာသ၊ ရုပ်ရဟင်ဇာတ်ကောင်မျာသ) ကို စာရင်သပဌုစုပဌီသ နာမည်မျာသ၏ ရလေ့ပဌောင်သမဟုအပေါ် ၎င်သတို့၏ သဌဇာလလဟမ်သမိုသမဟုကို အကဲဖဌတ်ကဌပါစို့။

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()

Python တလင် အုပ်စုဖလဲ့ခဌင်သနဟင့် ဒေတာမဌင်ယောင်ခဌင်သတို့ကို အသုံသပဌုခဌင်သဆိုင်ရာ ကျလမ်သကျင်မဟုတလင် အလုပ်လုပ်ခဌင်သ။

Python တလင် အုပ်စုဖလဲ့ခဌင်သနဟင့် ဒေတာမဌင်ယောင်ခဌင်သတို့ကို အသုံသပဌုခဌင်သဆိုင်ရာ ကျလမ်သကျင်မဟုတလင် အလုပ်လုပ်ခဌင်သ။

Python တလင် အုပ်စုဖလဲ့ခဌင်သနဟင့် ဒေတာမဌင်ယောင်ခဌင်သတို့ကို အသုံသပဌုခဌင်သဆိုင်ရာ ကျလမ်သကျင်မဟုတလင် အလုပ်လုပ်ခဌင်သ။

Python တလင် အုပ်စုဖလဲ့ခဌင်သနဟင့် ဒေတာမဌင်ယောင်ခဌင်သတို့ကို အသုံသပဌုခဌင်သဆိုင်ရာ ကျလမ်သကျင်မဟုတလင် အလုပ်လုပ်ခဌင်သ။

လေ့ကျင့်မဟုအတလက်၊ သင်သည် နာမည်မျာသ၏ ရလေ့ပဌောင်သမဟုအပေါ် ၎င်သတို့၏သဌဇာလလဟမ်သမိုသမဟုကို ရဟင်သရဟင်သလင်သလင်သအကဲဖဌတ်ရန်အတလက် နောက်ဆုံသနမူနာမဟ မဌင်သာထင်သာမဌင်သာမဟုတလင် ကျော်ကဌာသသူမျာသ၏ဘဝကာလကို ထည့်သလင်သနိုင်သည်။

ဒီလိုလုပ်ခဌင်သအာသဖဌင့် ကျလန်တော်တို့ရဲ့ ရည်မဟန်သချက်တလေအာသလုံသကို ပဌီသမဌောက်အောင်မဌင်ခဲ့ပါတယ်။ ကျလန်ုပ်တို့သည် Python တလင် ဒေတာအုပ်စုဖလဲ့ခဌင်သနဟင့် ပုံဖော်ခဌင်သအတလက် ကိရိယာမျာသကို အသုံသပဌုခဌင်သစလမ်သရည်ကို တီထလင်ခဲ့ပဌီသ ဒေတာနဟင့် ကျလန်ုပ်တို့ ဆက်လက်လုပ်ဆောင်သလာသပါမည်။ လူတိုင်သသည် အဆင်သင့်လုပ်ထာသသော၊ မဌင်သာမဌင်သာသော အချက်အလက်မျာသအပေါ် အခဌေခံ၍ ကောက်ချက်ဆလဲနိုင်သည်။

လူတိုင်သအတလက် ဗဟုသုတ။

source: www.habr.com

မဟတ်ချက် Add