我在数据框B中有一列,其中包含我希望从数据框A中删除的元素(如果A包含它们)。我希望从A删除整行。
我对编程并不陌生,但是我正在学习广泛的熊猫库。从我所看到的,这不可能是有效或适当的。
for i in range(0,106):
for j in range(0,171):
if dfB.iloc[i,2] == dfA.iloc[j,0]:
dfA.drop(j, inplace=True)
答案 0 :(得分:0)
IIUC:
dfA = dfA.loc[~dfA["ColumnNameInA"].isin(dfB["ColumnNameInB"])]
您需要替换适当的列名称。
在这种情况下,只要dfA["ColumnNameInA"].isin(dfB["ColumnNameInB"])
列中的值位于True
列中,dfA
就会创建一个dfB
的序列。我们将其传递给.loc
,然后重新分配给dfA
。
答案 1 :(得分:0)
这也应该起作用:
df = df[df['A'] == df2['B']]
假设:df和df2的长度相同,并且您正在比较df中的第x行与df2中的第x行。
示例数据集:
df = pd.DataFrame({'A': [1,2,3]})
df2 = pd.DataFrame({'B': [1,4,3]})
输出:
df
A
0 1
2 3