我正在扫描导入数据中的重复行,并使用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 0Datetime 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 float64Datetime 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发布于 2020-05-26 18:52:46
您的dataframe中是否有类似的行(如果不是复制的话),则对同一行的第二次出现返回true,用于exp:
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') https://stackoverflow.com/questions/62028664
复制相似问题