首页 > 解决方案 > 用另一个数据帧处理一个数据帧

问题描述

我有两个数据框: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

任何指针或提示?

标签: pythonpandas

解决方案


使用 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)

推荐阅读