gpt4 book ai didi

python - Pandas 数据框捕获具有填充常量的多列的行

转载 作者:行者123 更新时间:2023-12-01 07:06:23 27 4
gpt4 key购买 nike

有一个数据框:

data = {'ledger_1': [3, -99,-99], 'ledger_2': [0.1, 1.2,-99] , 'geo_3' : [2.3,4.5,1.0]}
df_data = pd.DataFrame.from_dict(data)

geo_3 ledger_1 ledger_2
0 2.3 3 0.1
1 4.5 -99 1.2
2 1.0 -99 -99.0

现在我想捕获 ledger_1 和 ledger_2 都没有填充 -99 常量值的行

我一直在努力做-

cols = ['ledger_1','ledger_2']
df_data[df_data[cols]!= -99]

但这给出

   geo_3    ledger_1    ledger_2
0 NaN 3.0 0.1
1 NaN NaN 1.2
2 NaN NaN NaN

我想要的解决方案只是第一条记录 -

   geo_3    ledger_1    ledger_2
0 2.3 3.0 0.1

如何根据一组列(ledger_1、_2、_3..._n)和通用条件(!= -99)过滤数据框,而不仅仅是单独过滤,因为列列表相当庞大?

最佳答案

使用DataFrame.all用于测试两个值是否均为 True:

cols = ['ledger_1','ledger_2']
df = df_data[(df_data[cols]!= -99).all(axis=1)]
print (df)
ledger_1 ledger_2 geo_3
0 3 0.1 2.3

详细信息:

print (df_data[cols]!= -99)
ledger_1 ledger_2
0 True True
1 False True
2 False False

print ((df_data[cols]!= -99).all(axis=1))
0 True
1 False
2 False
dtype: bool

关于python - Pandas 数据框捕获具有填充常量的多列的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58427607/

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