我有兩個數(shù)據(jù)框,如:df: a b c d0 12 "vik" [9, 18] "SS"1 13 "Rah" [10, 18] "YY"df2: a b c d0 12 "vik" [9, 18] "SS"1 13 "Rah" [10, 18] "YY"2 14 "Dil" [11, 18] "ZZ"我想從 df2 中消除 df 中的行。我試過了df2.sub(df, fill_values=0)這給了我一個錯誤TypeError: unsupported operand type(s) for -: 'str' and 'str'。我想要的輸出是這樣的: a b c d0 14 "Dil" [11, 18] "ZZ"任何幫助都是可觀的。
2 回答

慕神8447489
TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個贊
使用merge與左連接和參數(shù)indicator=True,然后通過過濾query和刪除列_merge:
df1['c'] = df1['c'].apply(tuple)
df2['c'] = df2['c'].apply(tuple)
df3 = (df2.merge(df, how='left', indicator=True)
.query('_merge == "left_only"')
.drop('_merge', axis=1))
df3['c'] = df3['c'].apply(list)
print (df3)
a b c d
2 14 Dil [11, 18] ZZ
添加回答
舉報
0/150
提交
取消