Python 数据帧与其他数据帧条件的平均值

Python 数据帧与其他数据帧条件的平均值,python,pandas,dataframe,numpy,Python,Pandas,Dataframe,Numpy,我有两个数据帧。一个只包含二进制值,另一个在0和1之间浮动。 例如 我需要的是计算df1的平均值,其中df2>=0.5(或任何其他数字) 我在这个主题上只能找到列,而我无法让它在整个数据框架上工作。 感谢您的帮助。首先需要在两个DataFrames中使用相同的索引和列名称 然后通过掩码将缺少的值设置为假值,然后获取平均值: df = df1.where(df2 >= 0.5).mean() 如果需要用于排除缺失值的所有值的平均值: mean = np.nanmean(df1.where

我有两个数据帧。一个只包含二进制值,另一个在0和1之间浮动。 例如

我需要的是计算df1的平均值,其中df2>=0.5(或任何其他数字) 我在这个主题上只能找到列,而我无法让它在整个数据框架上工作。
感谢您的帮助。

首先需要在两个
DataFrame
s中使用相同的索引和列名称

然后通过掩码将缺少的值设置为假值,然后获取
平均值

df = df1.where(df2 >= 0.5).mean() 
如果需要用于排除缺失值的所有值的平均值:

mean = np.nanmean(df1.where(df2 >= 0.5))
另一个想法是使用将所有值转换为
系列
,然后获得平均值:

mean = df1.where(df2 >= 0.5).stack().mean() 

首先,必须在两个
DataFrame
s中使用相同的索引和相同的列名称

然后通过掩码将缺少的值设置为假值,然后获取
平均值

df = df1.where(df2 >= 0.5).mean() 
如果需要用于排除缺失值的所有值的平均值:

mean = np.nanmean(df1.where(df2 >= 0.5))
另一个想法是使用将所有值转换为
系列
,然后获得平均值:

mean = df1.where(df2 >= 0.5).stack().mean() 

创建一个包含0.5以上值的数据框,然后在其他地方使用NaN值,怎么样

df = df1.where(df2 >= 0.5)
然后,我们计算值的总和,并计算值的数量以获得平均值:

sum_values = df.sum().sum()
count_values = df.count().sum()
mean_value = sum_values / count_values

创建一个包含0.5以上值的数据框,然后在其他地方使用NaN值,怎么样

df = df1.where(df2 >= 0.5)
然后,我们计算值的总和,并计算值的数量以获得平均值:

sum_values = df.sum().sum()
count_values = df.count().sum()
mean_value = sum_values / count_values

令人惊叹的。那太容易了。这将打印每列的平均值。得到总体平均值也很好。但是,由于某些列具有NaN值(因为没有值与条件匹配),因此在末尾添加一个.mean()是不起作用的。@TomS-answer被编辑过。太棒了。那太容易了。这将打印每列的平均值。得到总体平均值也很好。但是,由于某些列具有NaN值(因为没有值与条件匹配),因此在末尾添加一个.mean()是不起作用的。@TomS-answer已被编辑。