我有一个包含大量盘中数据的DataFrame,其中包含几天的数据,日期不连续。
2012-10-08 07:12:22 0.0 0 0 2315.6 0 0.0 0
2012-10-08 09:14:00 2306.4 20 326586240 2306.4 472 2306.8 4
2012-10-08 09:15:00 2306.8 34 249805440 2306.8 361 2308.0 26
2012-10-08 09:15:01 2308.0 1 53309040 2307.4 77 2308.6 9
2012-10-08 09:15:01.500000 2308.2 1 124630140 2307.0 180 2308.4 1
2012-10-08 09:15:02 2307.0 5 85846260 2308.2 124 2308.0 9
2012-10-08 09:15:02.500000 2307.0 3 128073540 2307.0 185 2307.6 11
......
2012-10-10 07:19:30 0.0 0 0 2276.6 0 0.0 0
2012-10-10 09:14:00 2283.2 80 98634240 2283.2 144 2283.4 1
2012-10-10 09:15:00 2285.2 18 126814260 2285.2 185 2285.6 3
2012-10-10 09:15:01 2285.8 6 98719560 2286.8 144 2287.0 25
2012-10-10 09:15:01.500000 2287.0 36 144759420 2288.8 211 2289.0 4
2012-10-10 09:15:02 2287.4 6 109829280 2287.4 160 2288.6 5
......
如何从上面的DataFrame中提取日期时间格式的唯一日期?结果应该像这样:[2012-10-08, 2012-10-10]
df.index.map(pd.Timestamp.date).unique()
会抛出“'numpy.ndarray' object has no attribute 'unique'”错误。 - tesla1060Series
中,使用pd.Series(df.index).map
等。或者如果顺序无关紧要,甚至可以使用set(df.index.map(pd.Timestamp.date))
。 - DSM.unique()
会将值的类型悄悄地更改为“numpy.datetime64”。 - quant_dev%timeit df.index.map(pd.Timestamp.date).unique()
给出了53.7毫秒,而%timeit pd.Series([d.date() for d in df.index]).unique()
则只用了4.9毫秒。 - Daniel Goldfarb