python - Pandas:.loc 没有将一个数据帧的行分配给另一个数据帧的切片行
问题描述
我有一个如下的数据框,我从中获取一个名为NDCSPart_df
usingNDCSPart_df = Register_df.iloc[:, :17]
这NDCSPart_df
需要由NOTES_df
具有相同列长度但一些具有不同值以及相同或更多行数的最新数据帧来更新。
我比较了一行NDCSPart_df
并NOTES_df
使用“MainDocID”来识别任何更改,如果有任何更改,则将为 in 中的行NDCSPart_df
分配具有相同“MainDocID”的行的值NOTES_df
。
for i in ChangedDocumentIDDict.keys():
NDCSPart_df.loc[NDCSPart_df["MainDocID"]==i,:].update(NOTES_df.loc[NOTES_df["MainDocID"]==i,:])
这给了我以下警告,
C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\frame.py:5516: SettingWithCopyWarning: 试图在数据帧的切片副本上设置值。尝试改用 .loc[row_indexer,col_indexer] = value
请参阅文档中的注意事项:http: //pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy self[col] = expressions.where(mask, this, that)
同样,我尝试了以下代码:
for i in ChangedDocumentIDDict.keys():
NDCSPart_df.loc[NDCSPart_df["MainDocID"]==i,:]= NOTES_df.loc[NOTES_df["MainDocID"]==i,:]
有类似的警告:
C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\indexing.py:190: SettingWithCopyWarning: 试图在 DataFrame 中的切片副本上设置值
请参阅文档中的注意事项:http: //pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy self._setitem_with_indexer(indexer, value) C:\ProgramData\Anaconda3\lib \site-packages\ipykernel_launcher.py:3:SettingWithCopyWarning:试图在 DataFrame 中的切片副本上设置值
请参阅文档中的警告:http: //pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy 这与 ipykernel 包是分开的,因此我们可以避免导入,直到
但我担心的是赋值失败并NaN
填充了值,这些值应该具有针对索引 78 的行的值,NOTES_df
如第二个快照所示。
我正在使用 Python 3.7.3、pandas 0.24.2,并且我尝试过 Python 3.6.6、pandas 0.23.4,结果相同。
我的问题是:
- 我如何错误地使用 .loc?
- 如何分配 to 的
NOTES_df
行NDCSPart_df
?
解决方案
这更像是index
条件不同的过滤器后的两个df,所以我们需要添加.values
更多信息
for i in ChangedDocumentIDDict.keys():
NDCSPart_df.loc[NDCSPart_df["MainDocID"]==i,:]= NOTES_df.loc[NOTES_df["MainDocID"]==i,:].values
推荐阅读
- django - /auth/login/ NOT NULL 约束处的 IntegrityError 失败:authtoken_token.user_id
- angular - 密码比较指令@input 在角度模板驱动形式中始终未定义
- node.js - 限制每个用户的会话 - ExpressJS
- c++ - 如何使用 C++ 中的不可复制成员从 initializer_list 创建映射?
- c++ - 将 N 个元素的数组划分为 K 个部分的算法,其中元素之和之间的差异最小
- flutter - 如何关闭特定的 Flutter AlertDialog?
- apache-kafka - 向 Kafka 发送 Flux 响应
- angular - css 中的 Angular 内联资源作为 data-uri
- android - 将 YuvToRgbConverter 更改为基于 CameraX 进行旋转和缩放
- javascript - 将 blob 文件从 tiff 转换为 png 以在浏览器上显示