python - 熊猫将唯一日期显示为重复
问题描述
我正在尝试阅读一系列时间,其中有一些空白,所以我试图填补空白。我以前做过,但是有了这个数据集,pandas 似乎看到了似乎是唯一的日期时间的重复项。
当我尝试在不分配索引或解析日期的情况下读取 csv 时,检查重复项时显示无:
import pandas as pd
import numpy as np
df = pd.read_csv("/home/dewy/Desktop/euro/strip.csv",names=['time','open','high','low','close','volume'])#, index_col='time', parse_dates=True)
df[df.duplicated()]
输出是:
time open high low close volume
一张空白表。
当我检查重复项只是为了“时间”
df[df.duplicated(subset='time')]
我得到了两个重复,虽然它似乎是说 3:59 等于 4:00。
time open high low close volume
1255854 2012-11-21 03:59:00 1.27703 1.27703 1.27672 1.27672 2
1255855 2012-11-21 04:00:00 1.27666 1.27669 1.27531 1.27537 1211
当我 read_csv 并命名索引和 parse_dates 时,会出现更多重复项
df = pd.read_csv("/home/dewy/Desktop/euro/strip.csv",names=['time','open','high','low','close','volume'], index_col='time', parse_dates=True)
df[df.duplicated()]
[输出]:
open high low close volume
time
2009-05-01 04:01:00 1.32549 1.32549 1.32547 1.32548 3
2009-05-03 21:57:00 1.32827 1.32827 1.32827 1.32827 2
2009-05-05 22:33:00 1.33155 1.33155 1.33150 1.33155 3
2009-05-07 21:24:00 1.33976 1.33980 1.33976 1.33980 2
...
2014-02-21 05:35:00 1.37179 1.37179 1.37179 1.37179 3
2014-02-21 08:48:00 1.37125 1.37125 1.37117 1.37117 18
2014-02-21 11:12:00 1.37089 1.37093 1.37089 1.37093 12
2014-02-21 19:37:00 1.37409 1.37409 1.37409 1.37409 2
总共有 2837 行重复。
如果我首先导入而不命名索引和解析日期,然后设置 to_datetime 和 set_index 之后,就会发生同样的事情。
对我来说似乎表现得很奇怪,有什么想法吗?谢谢
解决方案
默认情况下 df.duplicated 的输出将保留第一个实例并仅返回其他重复项。当您这样做时,您会得到两个重复项,这并不是说这两个是彼此的重复项。它说这两个记录已经被看到,所以这两个是另外两个记录的副本。keep=False
如果您想查看所有重复记录,请尝试在对重复项的调用中进行设置。
import pandas as pd
names = ['chris','adam','chris','sam','adam','david']
df = pd.DataFrame(names)
print(df)
print(df[df.duplicated()])
print(df[df.duplicated(keep=False)])
PRINT1 - 整个数据框
0
0 chris
1 adam
2 chris
3 sam
4 adam
5 david
PRINT2 - df.duplicate() 默认首先使用。这并不是说克里斯是亚当的复制品。它的说法克里斯和亚当已经被看到
0
2 chris
4 adam
PRINT3 - 将 keep=False 传递给 df.dupicates 以便我们看到所有重复的记录
0
0 chris
1 adam
2 chris
4 adam
推荐阅读
- javascript - Angular 使用地图但忽略空值
- python-3.x - Numpy 在随机 2D 或 1D 数组中计算 Min Max
- python - MemoryError: Unable to allocate 137. MiB for an array with shape (3000, 4000, 3) and data type float32
- python - msg pack scipy ckdtree - 构建自定义序列化程序
- xamarin.forms - Xamarin 热重载不工作。目前我正在使用iOS模拟器
- css - 在 Shiny 中更改 pickerInput 项目的颜色
- asp.net - URL 将自定义标头重写为 Cookie
- shell - 无法打印匹配的 Sed 正则表达式
- r - 我正在寻找一种在 R 中根据满足某个条件的位置删除列的方法
- c++ - 使用 OpenCL 在 OpenCV DNN 类中指定着色器指令计数