Python 基于2个唯一列对数据集重新采样

Python 基于2个唯一列对数据集重新采样,python,pandas,numpy,Python,Pandas,Numpy,我有一个数据集,其中提取了两列:date_1和date_2。数据帧的大小为800个条目 我有另一个dataframe1,它有20000个带有日期1和日期2的条目,这样就有重复的值和额外的值。我想从第二个数据帧中删除第一个数据帧中不存在的值(date_1,date_2组合),并将它们存储在其他地方。谁能帮我理解实现同样的目标 编辑:我在数据帧1中有另一列名为value\u 1。它是聚合值。我还希望将列值分配给创建的条目,以便第二个数据帧中的date_1、date_2的总和加起来等于datafram

我有一个数据集,其中提取了两列:date_1和date_2。数据帧的大小为800个条目

我有另一个dataframe1,它有20000个带有日期1和日期2的条目,这样就有重复的值和额外的值。我想从第二个数据帧中删除第一个数据帧中不存在的值(date_1,date_2组合),并将它们存储在其他地方。谁能帮我理解实现同样的目标

编辑:我在数据帧1中有另一列名为value\u 1。它是聚合值。我还希望将列值分配给创建的条目,以便第二个数据帧中的date_1、date_2的总和加起来等于dataframe1值

例如:

df1

预期df2

date_1     date_2    value 
1/1/2019   2/2/2019  300
1/1/2019   2/2/2019  10
1/1/2019   2/2/2019  90
1/1/2019   2/2/2019  500
1/1/2019   2/2/2019  50
1/1/2019   2/2/2019  50
感谢

使用
指示器
参数,然后通过
eq
=
进行过滤,对于移除的行,使用
~
对反转遮罩进行过滤:

df = df2.merge(df1, on=['date_1', 'date_2'], how='left', indicator=True)

mask = df['_merge'].eq('both')
df21 = df[mask]

df22 = df[~mask]

如果我的解决方案不起作用,你能为两个
数据帧创建吗?好的,你能添加预期输出吗?@jezrael df2是预期输出,我们删除不存在的值。如您所见,6个条目的总值将达到1000。换句话说,需要将
1000
df1['value']
分配到
df2['value']
列中?分配的逻辑是什么?为什么
300,10,…
?@jezrael你得到这个问题了吗?我已经编辑了这个问题,你能根据它编辑你的答案吗
df = df2.merge(df1, on=['date_1', 'date_2'], how='left', indicator=True)

mask = df['_merge'].eq('both')
df21 = df[mask]

df22 = df[~mask]