【问题标题】:Pandas, add new column of count熊猫,添加新的计数列
【发布时间】:2017-11-19 02:46:36
【问题描述】:

为了让问题易于理解,我的问题是我想统计一些变量的数量,这是我的测试代码和输出

>>> 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

我该怎么做?

【问题讨论】:

  • 您希望 PERCENT 中的值与 COUNT 相同吗?
  • @pyd,当然不是。 PERCENT 是 COUNT 的百分比。
  • 试试g[["COUNTRY","STATE"]]=g[["COUNTRY","STATE"]].ffill()

标签: python pandas pandas-groupby


【解决方案1】:

看来你需要

df_data[['COUNTRY', 'STATE', 'CITY']].\
     groupby(['COUNTRY', 'STATE', 'CITY']).\
          size().\
            reset_index(name='count')

【讨论】:

    【解决方案2】:

    我想你想要reset_index() 方法。

    g.reset_index()
    

    【讨论】:

    • 如果您不想重置索引,但仍想要一个带计数器的列怎么办?
    猜你喜欢
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    • 2016-09-13
    • 2015-09-19
    • 1970-01-01
    • 1970-01-01
    • 2018-07-24
    • 2017-09-09
    相关资源
    最近更新 更多