我有一个数据框。它包含FileManager.importFile(e, importScenarios, importDevices).catch(e => {
// Some treatment of your exception
})
和df['article_id']
。
我也有一个numpy数组(或一个列表。我认为np数组会更快)。其中包含一个article_id和一个user_id。
关键是将df与np数组进行比较,以便我可以过滤出重复的条目。 user_id和article_id都必须是相同的值。因此,想法是:
df['user_id']
这是df&np.array / list的外观(目前只有1个user_id,但以后还会更多)。因此,如果np.array包含与数据框相同的值,则应删除数据框行。:
if df['article_id'] == nparray[:,0] & df['user_id'] == nparray[:,1]:
remove the row from the dataframe
所需的输出:
array([[1127087222, 1],
[1202623831, 1],
[1747352473, 1],
[1748645480, 1],
[1759957596, 1],
[1811054956, 1]])
user_id article_id date_saved
0 1 2579244390 2019-05-09 10:46:23
1 1 2580336884 2019-05-09 10:46:22
2 1 1202623831 2019-05-09 10:46:20
3 1 2450784233 2019-01-11 12:36:44
4 1 1747352473 2019-01-03 21:38:34
我该如何实现?
答案 0 :(得分:1)
在您澄清之后。您可以使用np.isin
和否定运算符'〜'来实现所需的输出,如下所示:
df[~np.isin(df[['user_id', 'article_id']], nparray)]
Out[17]:
user_id article_id date_saved
0 1 2579244390 2019-05-09 10:46:23
1 1 2580336884 2019-05-09 10:46:22
3 1 2450784233 2019-01-11 12:36:44