首页 > 解决方案 > 如何使用熊猫中其他列的 .size() 值创建一个新列?

问题描述

 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”,以检查每家公司被提及的次数。我无法创建新的频率列。好像我做错了什么,请帮助我。

屏幕截图显示没有频率列

标签: pythonpandasdataframejupyter-notebook

解决方案


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

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

推荐阅读