首页 > 解决方案 > 使用平均阈值过滤 DataFrame

问题描述

我有一个 DataFrame,当它们的平均值超过某个阈值时,我只想保留列。

我的代码如下所示:

import pandas as pd
df =  pd.DataFrame(np.random.random((20,20)))
mean_keep= (df.mean() > 0.5)
mean_keep= mean_keep[mean_keep == True]
df_new = df[mean_keep.index]

它正在工作。但是我想知道是否有像“TAKE_ONLY_COLUMNS”这样的函数可以将它减少到一行

df_new = df[TAKE_ONLY_COLUMNS(df.mean() > 0.5)]

标签: pythonpandas

解决方案


在这里使用df.loc[]

df_new=df.loc[:,df.mean() > 0.5]
print(df_new)

这将自动保留条件为 True 的列。


推荐阅读