這是我的問題,我想在數據幀的 B 列的元素列表中查找 A 列的元素。因此,我只想保留在 A 中找到元素的那些行:df = pd.DataFrame({'A': [1, 2], 'B': [1, 3] })result = df[df.A.isin(df.B)]>>> result A B0 1 1工作正常,但我真正想要的是:df = pd.DataFrame({'A': [1, 2], 'B': [[1, 2], [1, 3]] })result = df[df.A.isin(df.B)]>>> resultEmpty DataFrameColumns: [A, B]Index: []哪個不起作用,因為 A 中的元素不是與 B 列中的列表元素進行比較,而是與整個列表進行比較?我想要的結果是:>>> result A B0 1 [1, 2]那可能嗎?
1 回答

catspeake
TA貢獻1111條經驗 獲得超0個贊
你可以這樣做apply:
df[df.apply(lambda row: row['A'] in row['B'], axis=1)]
或 zip 理解:
df[[a in b for a,b in zip(df['A'], df['B'])]]
輸出:
A B
0 1 [1, 2]
添加回答
舉報
0/150
提交
取消