【问题标题】:python dataframe count occurence [duplicate]python数据帧计数出现[重复]
【发布时间】:2018-09-10 17:48:11
【问题描述】:

我有一个如下的数据框。我想添加一列来存储日期在此数据框中出现的次数。谢谢。

import pandas as pd
import numpy as np
df2 = pd.DataFrame({
    'date': [20130101,20130101, 20130105, 20130105, 20130107, 20130108],
    'price': [25, 16.3, 23.5, 27, 40, 8],
})

【问题讨论】:

  • 你是指每个日期吗?
  • 是的,比如 20130101 出现了 2 次,所以 'E' 列中的数字是 2。

标签: python pandas dataframe pandas-groupby


【解决方案1】:

试试:

df2['Occur']=df2.groupby('date')['date'].transform(pd.Series.value_counts)
print(df2)

或者:

df2['Occur']=df2['date'].apply(df2['date'].tolist().count)
print(df2)

两者都重现:

       date  price  Occur
0  20130101   25.0      2
1  20130101   16.3      2
2  20130105   23.5      2
3  20130105   27.0      2
4  20130107   40.0      1
5  20130108    8.0      1

【讨论】:

    【解决方案2】:

    使用GroupBy + transformsize

    df2['date_count'] = df2.groupby('date')['date'].transform('size')
    
    print(df2)
    
         C     D      date  price  date_count
    0   25   2.3  20130101     25           2
    1  163   4.2  20130101    163           2
    2  235   6.8  20130105    235           2
    3  -25   8.8  20130105    -25           2
    4   40  11.3  20130107     40           1
    5   -8  15.8  20130108     -8           1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-02
      • 1970-01-01
      • 2019-05-16
      • 2017-12-24
      • 2021-11-08
      • 2013-04-04
      • 1970-01-01
      • 2017-07-19
      相关资源
      最近更新 更多