Tôi muốn mở một tệp, đọc nó, thả các bản sao vào hai cột của tệp và sau đó sử dụng thêm tệp mà không có các bản sao để thực hiện một số phép tính. Để làm điều này tôi đang sử dụng pandas.drop_duplicates, mà sau khi thả các bản sao cũng giảm các giá trị chỉ mục. Ví dụ sau khi droping dòng 1, file1 file2 trở thành: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
Tiếp tục sử dụng file2 như một dataframe tôi cần phải reindex nó để 0, 1, 2, ...
Đây là mã tôi sử dụng:
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')
Mặc dù mã chạy và tạo ra kết quả tốt, reindexing, cung cấp cho các cảnh báo sau đây:
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))
Tôi đã kiểm tra liên kết nhưng tôi không thể tìm ra cách thay đổi mã của mình. có ý tưởng nào để sửa cái này không?