如何删除部分列中具有重复值的行?

时间:2019-07-31 09:01:21

标签: python pandas

我正在创建将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()

此代码现在仅删除具有完全相同的列值的行。无论如何,我找不到删除此类重复项的明智解决方案。如果问题不相关,请纠正我。

1 个答案:

答案 0 :(得分:4)

尝试pd.drop_duplicates并设置要比较其值的subset

df.drop_duplicates(subset=['Category' ,'Year', 'Week' ,'Price'],inplace=True)