python - 使用 iloc 重新分配数据帧行或变量返回 NaN
问题描述
我有一个部分完整的“数据框 A”;有些行缺少数据。丢失的数据可以在另一个“数据框 B”(具有相同的标签,但不是位置)中的行上找到。
当我尝试重新分配数据框 A 的行时,python 为我尝试重新分配的所有行返回 NaN。
我尝试过: iloc iloc 在使列名匹配 iloc 后指定列 iloc 在深拷贝上将目标列转换为不同的 dtypes,例如字符串、浮点数
第一次尝试,在 A1:A2 行的所有列中返回带有 NaN 的 dfA
dfA.iloc[A1:A2] = dfB.iloc[B1:B2]
第二次尝试,在 A1:A2 行的第 2 列中返回带有 NaN 的 dfA
dfA.iloc[A1:A2, 2] = dfB.iloc[B1:B2, 2]
第三次尝试,同样的问题
dfA_copy = copy.deepcopy(dfA)
dfA_copy.iloc[A1:A2]
dfB_copy = copy.deepcopy(dfB)
dfB_copy.iloc[B1:B2]
dfA_copy.iloc[A1:A2] = dfB_copy.iloc[B1:B2]
我希望“数据框 B”中的数据替换“数据框 A”中缺失的数据。
解决方案
如果你有两个相同形状的熊猫数据框,那么你可以做这样的事情
dfA[dfA.isnull()] = dfB
如果这解决了您的问题,请接受答案。