[英]Generating a dataframe based off the diff between two dataframes
我有 2 个看起来像这样的数据框
Df1
City Code ColA Col..Z
LA LAA
LA LAB
LA LAC
Df2
Code ColA Col..Z
LA LAA
NY NYA
CH CH1
我正在尝试做的结果是
df3
Code ColA Col..Z
NY NYA
CH CH1
通常我会遍历 df2 中的每一行并说:
df3 = 如果 df2.row['Code'] 在 df1 中,则删除它。
但我想找到一种 pythonic pandas 的方式来做到这一点,而不是遍历数据帧。 我正在查看使用连接或合并的示例,但我似乎无法解决。
有一个可能相关的Pandas compare
df 方法?:
df1 = pd.read_clipboard()
df1
df2 = pd.read_clipboard()
df2
df1.compare(df2).drop('self', axis=1, level=1).droplevel(1, axis=1)
(我假设您的数据框中有错字,df2 中缺少 City col?)
要根据code
列仅保留df2
的不同项目,您可以使用drop_duplicates
:
df2[df2.code.isin(
# the different values in df2's 'code' column
pd.concat([df1.code, df2.code]).drop_duplicates(keep=False)
)]
此Df3 = 如果 df2.row['Code'] 在 df1 中,则将其删除。 翻译成
df3 = df2[~df2['Code'].isin(df1['City'] ]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.