我有一个数据集,其中提取了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
谢谢
答案 0 :(得分:1)
将DataFrame.merge
与indicator
参数一起使用,然后对eq
和boolean 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]