gpt4 book ai didi

python - 如何过滤掉Python中低于特定频率的二进制类列?

转载 作者:太空宇宙 更新时间:2023-11-03 20:55:02 25 4
gpt4 key购买 nike

我对编程还很陌生,我确信存在很多解决方案,但目前我的似乎不起作用。我有一个包含 200 多个预测变量的数据集,其中大多数是二进制 1= 事件,0= 无事件。我想过滤掉所有出现频率低于某个阈值(例如 100 次)的变量。

我尝试过这样的事情:

diag = luisa.T.reset_index().rename(columns = {'index': 'diagnosis'}) 

frequency = pd.concat([diag.iloc[:,:1],pd.DataFrame(diag.sum(1))], axis = 1).rename(columns = {0:'count'})

frequency.nlargest(150,'count)

请帮忙!

最佳答案

您可以按列求和并过滤掉总和低于特定值的列,请记住总和代表事件总数:

threshold = 100

col_sum = df.sum()
filtered_df = df[col_sum[col_sum > threshold].index]

这将在 filtered_df 中存储原始 DataFrame 的子集(不含这些列)。

如果并非所有列都是二进制列,那么您需要包括仅对二进制列执行此操作的附加步骤,然后反转条件以查找不满足您的要求的列标准:

binary_columns = df.isin([0, 1]).all(axis=0)
binary_df = df.loc[:, binary_columns]
col_sum = binary_df.sum()

filtered_df = df.drop(columns=col_sum[col_sum < threshold].index)

关于python - 如何过滤掉Python中低于特定频率的二进制类列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56075297/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com