我有一个熊猫df,其中一个列是由列表组成的。我希望删除该列表中与同一行中的另一列匹配的值。请注意,有时“similar_ids”是空的,或者只有一个值。例子如下:
原创
ID similar_ids
1 "1, 234, 3215"
2 "2, 52, 1"
3 "49, 3"
4 "4"
5所需
ID similar_ids
1 234, 3215
2 52, 1
3 49
4
5发布于 2022-07-26 01:18:00
df['similar_ids'] = df.apply(lambda row: [x for x in row.similar_ids if x != row.ID], axis=1)
print(df)输出:
ID similar_ids
0 1 [234, 3215]
1 2 [52, 1]
2 3 [49]
3 4 []
4 5 []发布于 2022-07-26 00:11:33
import pandas as pd
d = {'ID':[1, 2, 3, 4, 5], 'similar_ids':[[1, 234, 3215], [2, 52, 1], [49, 3], [4], []]}
df = pd.DataFrame(data=d)
for i in range(len(df['ID'])):
if df['ID'][i] in df['similar_ids'][i]:
df['similar_ids'][i].remove(df['ID'][i])https://stackoverflow.com/questions/73116293
复制相似问题