dictionary = {'Year': [1985, 1985, 1986, 1986, 1987, 1987, 1987]}
pdf = pd.DataFrame(dictionary)
Year
0 1985
1 1985
2 1986
3 1986
4 1987
5 1987
6 1987
我有一个名为pdf
的数据框我需要按以下格式组建new data frame
:
Year count
1985 2
1986 2
1987 3
如何在熊猫中有效地做到这一点?
答案 0 :(得分:2)
以下是答案:
dictionary = {'Year': [1985, 1985, 1986, 1986, 1987, 1987, 1987]}
pdf = pd.DataFrame(dictionary)
gb = pdf.groupby('Year')['Year'].count()
答案 1 :(得分:2)
最简单的方法是
pdf['Year'].value_counts()
这会返回一个系列。
答案 2 :(得分:1)
Counter是一个反制工具,用于支持词典和其他可清洗对象的方便快捷的记录。
from collections import Counter
df = pd.DataFrame(Counter(pd.DataFrame(dictionary).Year).items(),
columns=['Year', 'Count'])
>>> print df
print(df)
Year Count
0 1985 2
1 1986 2
2 1987 3
%timeit pd.DataFrame(dictionary).groupby('Year')['Year'].count()
1000 loops, best of 3: 777 µs per loop
%timeit pd.DataFrame(Counter(pd.DataFrame(dictionary).Year).items(), columns=['Year', 'Count'])
1000 loops, best of 3: 672 µs per loop