python - 用另一个数据帧处理一个数据帧
问题描述
我有两个数据框:df1 和 df2。它们都包括“ID”、“姓名”、“分数”和“状态”等信息,如果该人在 df2 中的状态为“编辑”,我需要更新 df1 中的“分数”,我还需要删除如果该人在 df2 中的状态为“取消”,则 df1 中的行。
例如:
dic1 = {'ID': [1, 2, 3],
'Name':['Jack', 'Tom', 'Annie'],
'Score':[20, 10, 25],
'Status':['New', 'New', 'New']}
dic2 = {'ID': [1, 2],
'Name':['Jack', 'Tom'],
'Score':[28, 10],
'Status':['Edit', 'Cancel']}
df1 = pd.DataFrame(dic1)
df2 = pd.DataFrame(dic2)
输出应该是这样的:
ID Name Score Status
1 Jack 28 Edit
3 Annie 25 New
任何指针或提示?
解决方案
使用 pandas 包的 pandas.DataFrame.update 命令。
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.update.html
df1.update(df2)
print(df1)
df1 = df1[df1.Status != "Cancel"]
print(df1)
推荐阅读
- python - 通过反转的列值重新索引行
- hashset - 如果有很多输入和删除,哈希集的空间复杂度会更差吗?
- javascript - 我得到 /bin/sh: [npm: not found error while execution the react image in Docker
- python - 使用矢量化访问过滤 Numpy 元组数组
- reactjs - 具有可调整大小的列和拖放列的 Ant Design Table 示例?
- javascript - 从链接打开可折叠部分
- javascript - 如何从标题标签中提取文本,换行
- 并附加到列表,使用jQuery
- python - HTML订单列表与django模板中的未排序列表混淆
- javascript - Javascript 类属性在一个变量中更改时其他变量中的更改
- java - Spring Boot:根据结果发送响应头