我正在扫描导入数据中的重复行,并且正在使用pd.duplicated&pd.drop_duplicates查找并删除重复行。我有一组似乎完全相同的行。以前,列的排列顺序不同,但是我合并了数据,问题仍然存在。
编辑:我应该注意到我的数据是float / str混合的,所以我不能使用numpy方法。我希望该解决方案能够适应可变数量的列,因此我无法手动对其重新排序。
drop_duplicates未标记的两行示例:
Datetime 2019-09-05 17:36:38
Site Name glacier hut
Chlorophyll RFU 0.81
Chlorophyll ug/L 2.93
Cond µS/cm 2593.8
fDOM QSU 76.75
fDOM RFU 24.79
nLF Cond µS/cm 3061.3
ODO % sat 78.6
ODO % local 78.6
ODO mg/L 7.44
ORP mV 196.9
Sal psu 1.58
SpCond µS/cm 3024
BGA PC RFU -0.1
BGA PC ug/L -0.1
TDS mg/L 1966
Turbidity FNU 19.49
TSS mg/L 0
Wiper Position volt 1.211
pH 4.41
pH mV 149.2
Temp °C 17.553
Battery V 5.9
Cable Pwr V 0
sonde_id 19E100810
field_monitor 0
Datetime 2019-09-05 17:36:38
Site Name glacier hut
Chlorophyll RFU 0.81
Chlorophyll ug/L 2.93
Cond µS/cm 2593.8
fDOM QSU 76.75
fDOM RFU 24.79
nLF Cond µS/cm 3061.3
ODO % sat 78.6
ODO % local 78.6
ODO mg/L 7.44
ORP mV 196.9
Sal psu 1.58
SpCond µS/cm 3024
BGA PC RFU -0.1
BGA PC ug/L -0.1
TDS mg/L 1966
Turbidity FNU 19.49
TSS mg/L 0
Wiper Position volt 1.211
pH 4.41
pH mV 149.2
Temp °C 17.553
Battery V 5.9
Cable Pwr V 0
sonde_id 19E100810
field_monitor 0
两者的dtype也相同。
Datetime datetime64[ns]
Site Name object
Chlorophyll RFU float64
Chlorophyll ug/L float64
Cond µS/cm float64
fDOM QSU float64
fDOM RFU float64
nLF Cond µS/cm float64
ODO % sat float64
ODO % local float64
ODO mg/L float64
ORP mV float64
Sal psu float64
SpCond µS/cm float64
BGA PC RFU float64
BGA PC ug/L float64
TDS mg/L float64
Turbidity FNU float64
TSS mg/L float64
Wiper Position volt float64
pH float64
pH mV float64
Temp °C float64
Battery V float64
Cable Pwr V float64
sonde_id object
field_monitor float64
Datetime datetime64[ns]
Site Name object
Chlorophyll RFU float64
Chlorophyll ug/L float64
Cond µS/cm float64
fDOM QSU float64
fDOM RFU float64
nLF Cond µS/cm float64
ODO % sat float64
ODO % local float64
ODO mg/L float64
ORP mV float64
Sal psu float64
SpCond µS/cm float64
BGA PC RFU float64
BGA PC ug/L float64
TDS mg/L float64
Turbidity FNU float64
TSS mg/L float64
Wiper Position volt float64
pH float64
pH mV float64
Temp °C float64
Battery V float64
Cable Pwr V float64
sonde_id object
field_monitor float64
答案 0 :(得分:0)
您的数据框中是否存在任何相似的行,如果没有重复的方法,则对于exp相同行的第二次出现将返回true:
df = pd.DataFrame([[1,2,3],[2,3,4],[3,4,5],[1,2,3]],columns = ["a","b","c"])
df.duplicated()
0 False
1 False
2 False
3 True
dtype: bool
编辑:您必须考虑drop_duplicates()方法不会编辑原始数据框,它会返回其副本,因此您必须手动分配它。
df = df.drop_duplicates()
您还可以为测试特殊列(例如->
)提供提示df = df.drop_duplicates(subset=['sonde_id','..','...etc'],keep='last')