python - 如何在 DateTimeIndex 中选择唯一日期的行

标签 python pandas datetime dataframe

假设我有一个带有 DateTimeIndex 的 DataFrame,如下所示:

Date_TimeOpen   High    Low     Close   Volume  
2018-01-22 11:05:00 948.00  948.10  947.95  948.10  9820.0
2018-01-22 11:06:00 948.10  949.60  948.05  949.30  33302.0
2018-01-22 11:07:00 949.25  949.85  949.20  949.85  20522.0
2018-03-27 09:15:00 907.20  908.80  905.00  908.15  126343.0
2018-03-27 09:16:00 908.20  909.20  906.55  906.60  38151.0
2018-03-29 09:30:00 908.90  910.45  908.80  910.15  46429.0

我只想选择每个唯一日期的第一行(丢弃时间),以便得到如下输出:

Date_Time   Open    High    Low     Close   Volume
2018-01-22 11:05:00 948.00  948.10  947.95  948.10  9820.0
2018-03-27 09:15:00 907.20  908.80  905.00  908.15  126343.0
2018-03-29 09:30:00 908.90  910.45  908.80  910.15  46429.0

我尝试使用 lociloc 但它没有帮助。

任何帮助将不胜感激。

最佳答案

您需要group by日期并获取每组的第一个元素:

import pandas as pd

data = [['2018-01-22 11:05:00', 948.00, 948.10, 947.95, 948.10, 9820.0],
        ['2018-01-22 11:06:00', 948.10, 949.60, 948.05, 949.30, 33302.0],
        ['2018-01-22 11:07:00', 949.25, 949.85, 949.20, 949.85, 20522.0],
        ['2018-03-27 09:15:00', 907.20, 908.80, 905.00, 908.15, 126343.0],
        ['2018-03-27 09:16:00', 908.20, 909.20, 906.55, 906.60, 38151.0],
        ['2018-03-29 09:30:00', 908.90, 910.45, 908.80, 910.15, 46429.0]]

df = pd.DataFrame(data=data)
df = df.set_index([0])
df.columns = ['Open', 'High', 'Low', 'Close', 'Volume']

result = df.groupby(pd.to_datetime(df.index).date).head(1)

print(result)

输出

                      Open    High     Low   Close    Volume
0                                                           
2018-01-22 11:05:00  948.0  948.10  947.95  948.10    9820.0
2018-03-27 09:15:00  907.2  908.80  905.00  908.15  126343.0
2018-03-29 09:30:00  908.9  910.45  908.80  910.15   46429.0

关于python - 如何在 DateTimeIndex 中选择唯一日期的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53923065/

相关文章:

python - 当宽度 <1.0 时,Matplotlib 周线太细;当宽度>=1.0 时,周线太粗

python - Pandas 将带有方括号的列作为字符串而不是列表导入

javascript - javascript如何以毫秒为单位知道日期的时区?

python - Python 中日期时间列的序列问题

python - 如何在退出程序之前计算一定的秒数

python - 将 Pandas 数据框列表合并/合并为一个同时保留给定列中的所有值的最佳方法

Python如何断言一个方法已被调用

python - numpy 中的部分和和产品

python - Pandas 数据框中行的距离矩阵

datetime - delphi中如何将字符串转换为日期