gpt4 book ai didi

python - 当一个数据帧为空时迭代两个 pandas 数据帧错误

转载 作者:行者123 更新时间:2023-12-01 08:59:43 24 4
gpt4 key购买 nike

我一直在尝试使用 zip 迭代两个 pandas 数据帧。它可以完美地工作,直到我在两个数据框中都有可用的值。如果其中一个数据帧为空,则不会迭代并返回 null。

for (kin_index, kin_row), (sub_index, sub_row) in zip(df1.iterrows(), df2.iterrows()):
print(kin_index,sub_index)

我想迭代两个数据帧,即使一个数据帧是空的。如果其中一个数据帧为空,则不会执行此操作。

最佳答案

zip 仅运行到最短的迭代。如果其中一个迭代器为空,您将无法迭代任何值。

itertools.zip_longest 迭代到最长的可迭代对象,但为了确保这适用于解包,您需要将 fillvalue 指定为长度的 tuple 2:

from itertools import zip_longest

df1 = pd.DataFrame([[0, 1], [2, 3]])
df2 = pd.DataFrame()

zipper = zip_longest(df1.iterrows(), df2.iterrows(), fillvalue=(None, None))

for (idx1, row1), (idx2, row2) in zipper:
print(idx1, idx2)

0 None
1 None

但是在极少数情况下您需要像这样迭代行。事实上,如果可能的话,应该避免这种情况。您应该考虑重构您的逻辑以使用矢量化功能。

关于python - 当一个数据帧为空时迭代两个 pandas 数据帧错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52553548/

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