根据2个唯一列对数据集重新采样

时间:2019-10-21 07:11:54

标签: python pandas numpy

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

我还有另一个dataframe1,其中有20000个条目,其中date_1和date_2如此,因此存在重复的值和额外的值。我想从第二个数据框中删除第一个数据框(date_1,date_2组合)中不存在的值,并将它们存储在其他位置。任何人都可以帮助我了解实现相同目标的方法。

编辑::数据框1中还有另一列名为value_1。它是合计值。我想将列值也分配给创建的条目,以便第二个数据框中的date_1,date_2的总数加起来等于dataframe1值

示例:

df1

date_1     date_2    value 
1/1/2019   2/2/2019  1000

预期的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

谢谢

1 个答案:

答案 0 :(得分:1)

DataFrame.mergeindicator参数一起使用,然后对eqboolean indexing==进行过滤,对于用~进行取反的已删除行过滤器面具:

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

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

df22 = df[~mask]