pandas 统计 每个 月 数据 帧 列 中 有 多少 非 零 条目

tp5buhyn  于 2022-11-20  发布在  其他
关注(0)|答案(2)|浏览(123)

我有一个 Dataframe df,其中包含datetimeindex和一个单列,如下所示:
第一次
我需要计算每个月有多少个非零条目。例如,根据这些图像,在一月份我有2个条目,在二月份有1个条目,在三月份有2个条目。我在 Dataframe 中有更多的月份,但我想这就解释了问题。
我尝试使用Pandasgroupby

df.groupby(df.index.month).count()

但这只是给我每个月的总天数,我在count()中没有看到任何其他参数,我可以在这里使用。
有什么想法吗?

vlurs2pr

vlurs2pr1#

尝试index.to_period()
例如:

In [1]: import pandas as pd
import numpy as np

x_df = pd.DataFrame( 
     {
          'values': np.random.randint(low=0, high=2, size=(120,)) 
     } ,
           index = pd.date_range("2022-01-01", periods=120, freq="D")
)
In [2]: x_df

Out[2]: 
            values
2022-01-01       0
2022-01-02       0
2022-01-03       1
2022-01-04       0
2022-01-05       0
           ...
2022-04-26       1
2022-04-27       0
2022-04-28       0
2022-04-29       1
2022-04-30       1

[120 rows x 1 columns]

In [3]: x_df[x_df['values'] != 0].groupby(lambda x: x.to_period("M")).count()

Out[3]: 
         values
2022-01      17
2022-02      15
2022-03      16
2022-04      17
4smxwvx5

4smxwvx52#

你能试试这个吗:

#drop nans
import numpy as np
dfx['col1']=dfx['col1'].replace(0,np.nan)
dfx=dfx.dropna()

dfx=dfx.resample('1M').count()

相关问题