|
发表于 2024-4-12 19:03:43
|
显示全部楼层
非常抱歉,我犯了一个错误。确实,在这种情况下,使用`pd.merge()`合并两个数据框会得到三项全等的结果,并不是您想要的其中两项相等的数据框。
如果您想要找出其中两项相等的行,可以使用pandas的`merge()`函数结合条件表达式来实现。以下是修正后的代码:
- import pandas as pd
- # 创建两个数据框
- df1 = pd.DataFrame({'车牌': ['A', 'B', 'C', 'D'],
- '油量': [100, 200, 300, 400],
- '日期': ['2022-01-01', '2022-01-02', '2022-01-03', '2022-01-04']})
- df2 = pd.DataFrame({'车牌': ['B', 'C', 'D', 'E'],
- '油量': [200, 300, 400, 500],
- '日期': ['2022-01-02', '2022-01-03', '2022-01-04', '2022-01-05']})
- # 将两项相等的行分成一个数据框
- df_equal = df1.merge(df2, on=['车牌', '日期'], how='inner')
- # 剩下的分成另一个数据框
- df_not_equal = pd.concat([df1, df2]).drop_duplicates(keep=False)
- print("两项相等的数据框:")
- print(df_equal)
- print("\n剩下的数据框:")
- print(df_not_equal)
复制代码
在这个修正后的代码中,使用了`merge()`函数结合`on`参数指定需要匹配的列,通过`how='inner'`参数设置为内连接,从而找到其中两项相等的行。最后,使用`concat()`函数将原始的两个数据框合并,并使用`drop_duplicates()`函数去除重复行,得到剩下的行。
希望这次能够满足您的需求,对您有所帮助!如还有其他问题,请随时提问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|