gpt4 book ai didi

python - Pandas applymap 函数在应用于太多列时会删除行吗?

转载 作者:行者123 更新时间:2023-12-01 08:35:23 26 4
gpt4 key购买 nike

我有一个数据帧,我希望在其中使用第一个即将到来的行来回填所有 NaN 值。我现在的代码是这样的:

df[df.applymap(np.isfinite).all(1)]

当我将数据帧减少到 7 列或更少时,此方法有效。然而,当我尝试在具有更多列的数据帧上运行它时,我返回一个仅包含列标题的空数据帧。

这是怎么回事?我的数据框有 800 行。

最佳答案

完全正是您对all条件所期望的。考虑这个最小的例子:

df = pd.DataFrame([[1, 2, np.inf],
[4, np.inf, 6]])

res1 = df[df.iloc[:, :2].applymap(np.isfinite).all(1)] # test first 2 columns only
res2 = df[df.applymap(np.isfinite).all(1)] # test all columns

print(len(res1.index)) # 1
print(len(res2.index)) # 0

df.iloc[:, :2] 仅过滤前 2 列,显然,第一行将被保留。而在第二种情况下,由于考虑了所有列,因此两行都被排除。

顺便说一句,在这种情况下,np.isfinite(df).all(1) 更惯用:您不必通过 applymap 单独对每个值应用操作.

关于python - Pandas applymap 函数在应用于太多列时会删除行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53754077/

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