首页 > 解决方案 > 如何计算给定数据帧列中每个值在某个类间隔内的出现次数?

问题描述

这是我在 stackoverflow 上的第一个问题。

我有两个不同大小的数据df1框(266808 行)和df2(201 行)。 df1

df2

我想将每个值/数字的计数附加df1['WS_140m']df2['count']如果数字落在给定的类间隔中df2['Class_interval']

我努力了

1)

df2['count']=pd.cut(x=df1['WS_140m'], bins=df2['Class_interval'])

2)

df2['count'] = df1['WS_140m'].groupby(df1['Class_interval'])

3)

for anum in df1['WS_140m']:
    if anum in df2['Class_interval']:
        df2['count'] = df2['count'] + 1

请指导,如果有人知道。

标签: pythonpandasdataframedatadesign

解决方案


请尝试类似:


def in_class_interval(value, interval):
    #TODO
def in_class_interval_closure(interval):
   return lambda x: in_class_interval(x, interval)

df2['count'] = df2['Class_interval']
      .apply(lambda x: df1[in_class_interval_closure(x)(df1['WS_140m'])].size,axis=1)

定义你的函数in_class_interval(value, interval),它返回布尔值。


推荐阅读