python - 通过 pandas 根据多个条件删除重复值

标签 python pandas

数据框看起来像这样

APMC   Commodity    Year    Month   Price
1       A           2015    Jan     1232
1       A           2015    Jan     1654
2       A           2015    Jan     9897
2       A           2015    Feb     3467
2       B           2016    Jan     7878
2       B           2016    Feb     8545 
2       B           2016    Feb     3948

我想删除第二行和最后一行,因为 APMC、年份、商品和月份列的值相同。我该怎么做呢?原始数据集很大,我想对其进行更改(想想类似 inplace=True 的东西)。

最佳答案

您可以指定要检测重复项的列:

df.drop_duplicates(subset=['APMC', 'Year', 'Commodity', 'Month'], 
                   inplace=True)

结果:

>>> df
   APMC Commodity  Year Month  Price
0     1         A  2015   Jan   1232
2     2         A  2015   Jan   9897
3     2         A  2015   Feb   3467
4     2         B  2016   Jan   7878
5     2         B  2016   Feb   8545

删除的行:

删除列索引:

>>> pd.RangeIndex(0, 7).difference(df.index)
Int64Index([1, 6], dtype='int64')

关于python - 通过 pandas 根据多个条件删除重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53162909/

相关文章:

python - 从 shutil 文件复制线程获取进度

python - PyCharm 查看对象数据类型

python - 如何使用模拟 yield 计算一系列股票价格?

python - 在 DataFrame 中将 Pandas 系列转换为 DateTime

python - 具有相似字符串模式的两个数据帧的匹配序列,保持索引和序列

python - Pandas 将不同大小的数据帧连接到列末尾

python - 从实时输入中识别音频的速度

Microsoft UI 自动化的 Python 绑定(bind)?

python - 用于图像分割的迭代补丁生成 - 可以优化吗?

python - 减少Python中的空垃圾箱