python - 使用来自另一个数据帧的值迭代和替换 NaN 值
问题描述
阅读类似的帖子,但似乎没有找到正确的解决方案 - 我正在尝试用新数据框中的正确值替换数据框中的 NaN 值。当我尝试迭代数据框时,我遇到了一些错误。
masterdataframe
|Date | Key | Column1 | Column2 | Column3
0 |2020-12-22| A | 123 | 345 | 678
1 |2020-12-22| B | 123 | 345 | 678
2 |2020-12-23| C | NaN | NaN | NaN
3 |2020-12-24| A | NaN | NaN | NaN
4 |2020-12-25| B | NaN | NaN | NaN
包含我需要的数据的数据框如下所示:
df1
|Date | Key | Column1 | Column2 | Column3
0 |2020-12-23| C | 123 | 345 | 678
我将如何迭代 masterdataframe 以用 df1 中的数据替换正确的行?目前我正在做以下事情:
for ind, row in masterdataframe.loc[3:].iterrows():
masterdataframe[column1][row] = df1.iat[0,2]
masterdataframe[column2][row] = df1.iat[0,3]
masterdataframe[column3][row] = df1.iat[0,4]
但是我收到以下错误:“ValueError: cannot index with vector contains NA / NaN values”
对我来说,确保将 df1 中的值插入到 masterdataframe 的正确行中的最佳解决方案是什么?
我的理想输出如下:
masterdataframe
|Date | Key | Column1 | Column2 | Column3
0 |2020-12-22| A | 123 | 345 | 678
1 |2020-12-22| B | 123 | 345 | 678
2 |2020-12-23| C | 123 | 345 | 678
3 |2020-12-24| A | NaN | NaN | NaN
4 |2020-12-25| B | NaN | NaN | NaN
感谢帮助,谢谢
解决方案
您可以使用.update
df1 中的值更新 masterdataframe 中的所有值。为此,您需要为两个数据框中的 Key 列设置索引。
masterdataframe = masterdataframe.set_index('Key')
df1= df1.set_index('Key')
masterdataframe.update(df1)
这将使用来自 df1 的所有列的值更新 masterdataframe 中的值,其中主数据帧中的键 = df1 中的键并且列名相同。
根据之后要执行的操作,您可能需要重置索引:
masterdataframe = masterdataframe.reset_index()
推荐阅读
- php - Xpath php:获取属性值以开头
- javascript - 使用 charCodeAt 转换时出现 NaN 错误
- android - 如何在使用 FireBase 数据库中的数据填充的 Spinner 小部件中添加提示?
- angular - 使用 iframe 在 Angular 6 中显示外部 React 应用程序
- symfony - Symfony 4:bind vs arguments 关键字显式注入依赖
- javascript - 将分页移到数据表之外
- lua - Lua 中模数的替代方案
- python - 从气流运算符将参数传递给 sql 模板
- windows - 为什么 D3DCOLORtoUBYTE4 将分量乘以 255.001953f?
- python - 比较两个 CSV 文件并找到共同点,然后将两个文件值复制到新文件中