【发布时间】:2022-09-20 01:27:55
【问题描述】:
我有数千个 pd.Dataframes,它们看起来类似于下面的示例 df。
我想在le 列中的值第一次更改之前删除所有行,除了最后一行具有重复值。例如,我想在这里删除df 中的前两行。但是,我没有找到可以用于我拥有的所有数据帧的通用解决方案。
id no parent le dia
10 1 1 9.18359371679495 112.963635499912
10 1 1 9.18359371679495 102.261060580237
10 1 1 9.18359371679495 102.261060580237
10 1 1 46.531309334225 75.1405324759379
10 1 1 148.45737705256 68.9880315000758
10 1 1 266.349709386555 68.9880315000758
10 1 1 352.40977395104 68.9880315000758
10 1 1 352.40977395104 68.9880315000758
10 1 1 352.40977395104 68.9880315000758
...
我试图通过删除重复项来解决此问题,但稍后应保留重复项,然后应保留第一个更改。
最后的df 应该是这样的:
id no parent le dia
10 1 1 9.18359371679495 102.261060580237
10 1 1 46.531309334225 75.1405324759379
10 1 1 148.45737705256 68.9880315000758
10 1 1 266.349709386555 68.9880315000758
10 1 1 352.40977395104 68.9880315000758
10 1 1 352.40977395104 68.9880315000758
10 1 1 352.40977395104 68.9880315000758
...
【问题讨论】:
-
也许
drop_duplicates和keep='last'? -
如果有多个重复项并且我只想删除第一个重复项并忽略较低行中的所有其他重复项,这将不起作用
-
是的,我更新了示例数据
标签: python pandas dataframe drop