gpt4 book ai didi

python - 从 pandas 数据框中过滤元素进行统计分析

转载 作者:行者123 更新时间:2023-12-01 06:46:13 26 4
gpt4 key购买 nike

我对 pandas 相当陌生,我只是想检查以下内容是否可行:

我有一个如下所示的数据框:

Date         Hour   id    id_a   id_b   id_c   id_d   id_e
2019-12-05 05 123 True False True False False
2019-12-05 05 124 False False True False True
2019-12-05 05 125 True False False False False
...

在 Excel 中,我可以过滤值以仅显示 TrueFalse 值,这会更改所有 View 并仅显示正确的列。我可以过滤多个列并获得所需的 View 。例如,id_aid_b设置为Trueid_e设置为False和其他列未过滤或接受 TrueFalse 值。例如,通过设置为 Trueid_a 进行过滤会删除第二个条目:

Date         Hour   id    id_a   id_b   id_c   id_d   id_e
2019-12-05 05 123 True False True False False
2019-12-05 05 125 True False False False False
...

如果可以使用 pandas dataframe 和 pandas 函数或简单的 python 或任何库获得以下内容:

a ) 如果 id_a、id_b 设置为 false 并且 id_c 和 id_d 接受任何值且 id_e 为 true,则返回现有数据帧的长度

b ) 返回 TrueFalse 语句的任意组合。

感谢您的建议。

最佳答案

首先仅过滤 bool 列:

df1 = df.select_dtypes(bool)

或按位置排列的列:

df1 = df.iloc[:, 3:]
print (df1)
id_a id_b id_c id_d id_e
0 True False True False False
1 False False True False True
2 True False False False False

然后链式掩码:

m = ~df['id_a'] & ~df['id_b'] & df['id_e']
print (m)
0 False
1 True
2 False
dtype: bool

对于计数 True 使用 sum:

print (m.sum())
1

如果想要计算TrueFalse:

df2 = df1.apply(pd.value_counts).fillna(0).astype(int)
print (df2)

id_a id_b id_c id_d id_e
False 1 3 1 3 2
True 2 0 2 0 1

并且还在计数之前按一些列数据进行过滤:

mask = df['id_a']
df3 = df1[mask].apply(pd.value_counts).fillna(0).astype(int)
print (df3)
id_a id_b id_c id_d id_e
False 0 2 1 2 2
True 2 0 1 0 0

关于python - 从 pandas 数据框中过滤元素进行统计分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59212772/

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