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