Допустим, ваш фрейм данных определен как:
df = pd.DataFrame(data=[[34, 67, "34,44,55", "41,54,67"], [75, 105, "75,90", "85,105"]], columns=["col2","col3","col4","col5"])
Вы получаете следующий фрейм данных:
col2 col3 col4 col5
0 34 67 34,44,55 41,54,67
1 75 105 75,90 85,105
Вы можете использовать .apply()
с axis=1
применить функцию к каждой строке данных.
В этой функции вы сначала конвертируете свою строку в col4 (or col5)
в список, разбив на ,
.Затем в col2 (or col3)
.
df["col4"] = df.apply(lambda row: ",".join([item for item in row["col4"].split(",") if int(item) != row["col2"]]), axis=1)
df["col5"] = df.apply(lambda row: ",".join([item for item in row["col5"].split(",") if int(item) != row["col3"]]), axis=1)
вы можете перебирать элементы в списке и сохранять только те, которые не равны целому числу. Вот результат, который вы получите:
col2 col3 col4 col5
0 34 67 44,55 41,54
1 75 105 90 85