我正在创建将xlsx文件读取到pandas数据框并向其追加新行的脚本。但是,我的问题是,我不想在前四列中添加具有相同值的重复项(总共包含5列)。第五列的值可以是任何值,但是基于这四列的重复,我想删除整行。
除此之外,我的代码功能齐全。我可以通过循环数据框来做到这一点,但是我相信有更聪明的方法可以做到这一点。
下面的数据示例。当第四行与第四行相同但第四列不同时,如何删除最后一行?
Category Year Week Price Amount
0 1 2019 27 2 1
1 1 2019 28 3 2
2 1 2019 29 4 3
3 2 2019 29 4 4
4 3 2019 30 5 3
5 3 2019 30 5 4
部分代码:
# Append new rows to dataframe
file_df = file_df.append(new_rows, sort=False, ignore_index=True)
# Delete dublicate rows
combined_df = combined_df.drop_duplicates()
此代码现在仅删除具有完全相同的列值的行。无论如何,我找不到删除此类重复项的明智解决方案。如果问题不相关,请纠正我。
答案 0 :(得分:4)
尝试pd.drop_duplicates
并设置要比较其值的subset
列
df.drop_duplicates(subset=['Category' ,'Year', 'Week' ,'Price'],inplace=True)