我有两个数据框,如:
df:
a b c d
0 12 "vik" [9, 18] "SS"
1 13 "Rah" [10, 18] "YY"
df2:
a b c d
0 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 d
0 14 "Dil" [11, 18] "ZZ"
任何帮助都是有意义的。
答案 0 :(得分:2)
答案 1 :(得分:1)
这是使用concat
和drop_duplicates
的一种方法
例如:
import pandas as pd
df = pd.DataFrame({"a": [12, 13], "b":["vik", "Rah"], "c":[[9, 18], [10, 18]], "d":["SS", "YY"]})
df2 = pd.DataFrame({"a": [12, 13, 14], "b":["vik", "Rah", "Dil"], "c":[[9, 18], [10, 18], [11, 18]], "d":["SS", "YY", "ZZ"]})
df3 = pd.concat([df, df2], ignore_index=True)
df3["c"] = df3["c"].apply(tuple)
print(df3.drop_duplicates(keep=False))