如何用熊猫中其他列的.size()值创建一个新列?

时间:2019-10-31 19:21:40

标签: python pandas dataframe jupyter-notebook

 df2 = df_cleaned.groupby('company').size()
 df2.columns = ['company', 'frequency']
 #df2.sort_values('frequency') # error : No axis named frequency for object type <class 'type'>
 df2

我有一个带有“公司”列的数据框“ df_cleaned”,我试图用一个额外的“频率”列创建一个新的数据框“ df2”,以检查每个公司被提及的次数。我无法创建新的频率列。好像我做错了什么,请帮帮我。

Screenshot showing no frequency column

2 个答案:

答案 0 :(得分:1)

您没有为我们提供数据,因此生成它:

import numpy as np
source = ['3Com', '3M', 'A-T-O', 'A.H. Robins']
cmp = [source[i] for i in np.random.randint(4, size = 20)]
df = pd.DataFrame(cmp, columns = ['company'])

Out[1]:
    company
0   A.H. Robins
1   3M
2   A.H. Robins
3   A.H. Robins
4   3M
5   3M
6   3Com
7   A-T-O
8   3Com
9   A-T-O
10  3M
11  3M
12  A-T-O
13  3M
14  3M
15  A.H. Robins
16  A-T-O
17  A-T-O
18  A-T-O
19  3Com

df.groupby('company')[['company']].count().rename(columns = {'company':'frequency'})

Out[2]:

        frequency
company 
3Com        3
3M          7
A-T-O       6
A.H. Robins 4

答案 1 :(得分:0)

使用:

df2 = df_cleaned.groupby('company').size().to_frame('frecuency')