Pandas,添加新的计数列
Pandas, add new column of count
为了让问题更容易理解,我的问题是我想统计一些变量的个数,这里是我的测试代码和输出结果
>>> g = df_data[['COUNTRY', 'STATE', 'CITY']].groupby(
['COUNTRY', 'STATE', 'CITY'])['COUNTRY'].count()
>>> g
COUNTRY STATE CITY
2 10.0 0.0 56643
40.0 18
60.0 596
nan 131
11.0 0.0 20
12.0 0.0 5
13.0 0.0 7
Name: COUNTRY, dtype: int64
我想要这样的输出
>>> g
COUNTRY STATE CITY COUNT PERCENT
2 10.0 0.0 56643 56643/number_of_total_record
2 10.0 40.0 18 18/number_of_total_record
2 10.0 60.0 596 ...
2 10.0 nan 131 ...
2 11.0 0.0 20 ...
2 12.0 0.0 5 ...
2 13.0 0.0 7 ...
Name: COUNTRY, dtype: int64
我该怎么做?
我想你想要 reset_index()
方法。
g.reset_index()
看来你需要
df_data[['COUNTRY', 'STATE', 'CITY']].\
groupby(['COUNTRY', 'STATE', 'CITY']).\
size().\
reset_index(name='count')
为了让问题更容易理解,我的问题是我想统计一些变量的个数,这里是我的测试代码和输出结果
>>> g = df_data[['COUNTRY', 'STATE', 'CITY']].groupby(
['COUNTRY', 'STATE', 'CITY'])['COUNTRY'].count()
>>> g
COUNTRY STATE CITY
2 10.0 0.0 56643
40.0 18
60.0 596
nan 131
11.0 0.0 20
12.0 0.0 5
13.0 0.0 7
Name: COUNTRY, dtype: int64
我想要这样的输出
>>> g
COUNTRY STATE CITY COUNT PERCENT
2 10.0 0.0 56643 56643/number_of_total_record
2 10.0 40.0 18 18/number_of_total_record
2 10.0 60.0 596 ...
2 10.0 nan 131 ...
2 11.0 0.0 20 ...
2 12.0 0.0 5 ...
2 13.0 0.0 7 ...
Name: COUNTRY, dtype: int64
我该怎么做?
我想你想要 reset_index()
方法。
g.reset_index()
看来你需要
df_data[['COUNTRY', 'STATE', 'CITY']].\
groupby(['COUNTRY', 'STATE', 'CITY']).\
size().\
reset_index(name='count')