Я хочу открыть файл, прочитать его, удалить дубликаты в двух столбцах файла, а затем использовать файл без дубликатов для выполнения некоторых вычислений. Для этого я использую pandas.drop_duplicates, который после удаления дубликатов также снижает значения индексации. Например, после строки 1 падают, file1 file2 становится:Reindexing after pandas.drop_duplicates
file1:
Var1 Var2 Var3 Var4
0 52 2 3 89
1 65 2 3 43
2 15 1 3 78
3 33 2 4 67
file2:
Var1 Var2 Var3 Var4
0 52 2 3 89
2 15 1 3 78
3 33 2 4 67
Для дальнейшего использования file2 как dataframe мне нужно проиндексировать его в 0, 1, 2, ...
Вот код, я с помощью:
file1 = pd.read_csv("filename.txt",sep='|', header=None, names=['Var1', 'Var2', 'Var3', 'Var4'])
file2 = file1.drop_duplicates(["Var2", "Var3"])
# create another variable as a new index: ni
file2['ni']= range(0, len(file2)) # this is the line that generates the warning
file2 = file2.set_index('ni')
Хотя прогонов кода и дает хорошие результаты, переиндексации, дает следующее предупреждение:
SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
See the the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
file2['ni']= range(0, len(file2))
Я проверил ссылку, но не могу понять, как изменить свой код. Есть какие нибудь идеи как это починить?