python - 合并两个没有重复的 DF
问题描述
我正在尝试合并两个数据框并消除欺骗。
这是 DF#1:
import pandas as pd
data1 = {'id':['168'],'group_id':['360002136432'],'ticket_form_id':['360000159712']}
df1 = pd.DataFrame(data1)
print(df1)
这是 DF #2
data2 = {'id':['362936613051','362936613051','362936613051'],'ticket_id':['168','168','168']}
df2 = pd.DataFrame(data2)
print(df2)
我正在尝试合并或合并 DF#1 和 DF#2,所以它看起来像这样。
id group_id ticket_form_id ID
168 360002136432 360000159712 362936613051
这将是 DF#1.id 和 DF#2.ticket_id 之间的某种内部连接(我认为),但我在合并的数据框中不断收到一堆骗局。如何消除合并数据框中的欺骗。
因此,对于 ID = 8,我希望看到 362563740691,对于 ID = 10,我希望看到 362563746711。
相反,我看到 ID = 8 的 362785076491。
解决方案
您的 df2 确实有很多重复值。我不知道您是否需要保留冗余数据,如果不需要,您可以删除 df2 重复项
df2.drop_duplicates(inplace = True)
print(df1.merge(df2, left_on = 'id', right_on = 'ticket_id'))
这会立即删除最终数据框中的重复行。
另一种可能性是在合并后删除重复的行。
df1 = df1.merge(df2, left_on = 'id', right_on = 'ticket_id', how = 'inner')
df1.drop_duplicates(inplace = True)
print(df1)
推荐阅读
- redirect - Weblogic将https重定向到http
- c++ - std::unique_ptr 可以被认为是一个单子吗?
- apache-flink - Flink 中的算子是什么?操作员状态和键控状态有何不同?
- javascript - 为每一行附加一个带有链接的按钮
- mysql - 相同的 SQL 查询在不同的服务器上花费更多时间
- reporting-services - 减少SSRS中同一组的条形图中条形之间的空间
- java - Android - openFileInput() NullPointerException
- vue.js - 无法在另一个组件内的组件中显示来自 vue 实例的数据
- c - C中结构数组中的qsort()
- excel - 有没有办法命名从 excel VBA 中的 URL 调用下载的文件