首页 > 解决方案 > 使用 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]

dfA_copy 行 A1:A2

dfB_copy = copy.deepcopy(dfB)
dfB_copy.iloc[B1:B2]

dfB_copy 行 B1:B2

dfA_copy.iloc[A1:A2] = dfB_copy.iloc[B1:B2] 

深拷贝重新分配

我希望“数据框 B”中的数据替换“数据框 A”中缺失的数据。

标签: pythonpandasdataframevariable-assignment

解决方案


如果你有两个相同形状的熊猫数据框,那么你可以做这样的事情

dfA[dfA.isnull()] = dfB

如果这解决了您的问题,请接受答案。


推荐阅读