In [5]:
import pandas as pd
import matplotlib.pyplot as plt
import time
years=range(1880,2017)
pieces = []
columns = [ 'name', 'sex', 'births' ]
for year in years:
#меняем год в имени файла
path = 'c:/names/yob%d.txt' %year
#читаем файл с полями
frame = pd.read_csv(path, names=columns)
#дописываем поле года
frame['year'] = year
#собираем в единый список
pieces.append(frame)
#создаем DataFrame, внимание! игнорируем исходные номера строк
names = pd.concat(pieces,ignore_index = True)
start = time.time()
gr=names[['name','sex','births']].groupby(['name','sex'],sort=False).sum().reset_index()
gr['dub']=gr.duplicated('name', keep=False)
gr_dub=gr[gr.dub==True]
max_name=gr_dub[['name','births']].groupby('name',sort=False).sum().reset_index().nlargest(3,'births')
print (max_name)
print ('time: %f' % (time.time() - start))
In [6]:
import pandas as pd
import matplotlib.pyplot as plt
import time
years=range(1880,2017)
pieces = []
columns = [ 'name', 'sex', 'births' ]
for year in years:
#меняем год в имени файла
path = 'c:/names/yob%d.txt' %year
#читаем файл с полями
frame = pd.read_csv(path, names=columns)
#дописываем поле года
frame['year'] = year
#собираем в единый список
pieces.append(frame)
#создаем DataFrame, внимание! игнорируем исходные номера строк
names = pd.concat(pieces,ignore_index = True)
start = time.time()
gr=names[['name','sex','births']].groupby(['name','sex'],sort=False).sum().reset_index()
gr['dub']=gr.duplicated('name', keep=False)
gr_dub=gr[gr.dub==True]
gd_dub_name=gr_dub[['name','births']].groupby('name').sum().sort_values('births',ascending=False).reset_index()
max_name=gd_dub_name.iloc[:3]
print (max_name)
print ('time: %f' % (time.time() - start))
In [8]:
import numpy as np
t=[]
n=range(50)
for i in n:
start = time.time()
gr=names[['name','sex','births']].groupby(['name','sex'],sort=False).sum().reset_index()
gr['dub']=gr.duplicated('name', keep=False)
gr_dub=gr[gr.dub==True]
max_name=gr_dub[['name','births']].groupby('name',sort=False).sum().reset_index().nlargest(3,'births')
t.append((time.time() - start))
print(np.mean(t))
print(np.std(t))
In [9]:
t=[]
n=range(50)
for i in n:
start = time.time()
gr=names[['name','sex','births']].groupby(['name','sex'],sort=False).sum().reset_index()
gr['dub']=gr.duplicated('name', keep=False)
gr_dub=gr[gr.dub==True]
gd_dub_name=gr_dub[['name','births']].groupby('name').sum().sort_values('births',ascending=False).reset_index()
max_name=gd_dub_name.iloc[:3]
t.append((time.time() - start))
print(np.mean(t))
print(np.std(t))
In [ ]: