[英]Set Field in Column to 0 Based on Two Column Values Being Equal Pandas
[英]Get pandas column where two column values are equal
如果列中的值相同,我想通過不同數據框中的兩列對 DataFrame 進行子集化。 以下是 df1 和 df2 的示例:
df1
A
0 apple
1 pear
2 orange
3 apple
df2
B
0 apple
1 orange
2 orange
3 pear
我希望 output 是基於 df2 列的子集 df1:
A
0 apple
2 orange
我試過 df1 = df1[df1.A == df2.B] 但出現以下錯誤:
ValueError: Can only compare identically-labeled Series objects
我不想重命名其中的列。
做這個的最好方式是什么? 謝謝
如果需要將索引值與兩列進行比較,請創建Multiindex
並使用Index.isin
:
df = df1[df1.set_index('A', append=True).index.isin(df2.set_index('B', append=True).index)]
print (df)
A
0 apple
2 orange
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.