Проблема в том, что df.drop_duplicates()
просматривает всю строку, а не только один столбец. Учитывая ваш текущий фрейм данных, уникальных строк нет.
Допустим, вы хотите удалить строки на основе дубликатов в одном столбце. Теперь основная проблема заключается в том, как определить, какую строку следует удалить.
В приведенном ниже примере будет сохраняться только первое вхождение значения в строке, основанное на столбце «A», и он не сбрасывает фрейм данных index.
import pandas as pd
def start():
df_dict = {"A": [1,2,3,3,4], "B": [1,2,2,3,4]}
df = pd.DataFrame(df_dict)
df_copy = df
unique_list = []
for index, value in df_copy.iterrows():
if value['A'] not in unique_list:
unique_list.append(value['A'])
else:
df = df.drop(index)
return df
start()
Вывод:
A B
0 1 1
1 2 2
2 3 2
4 4 4