如何访问数据帧中的第一个和最后一个时间戳

时间:2015-07-07 12:40:58

标签: python python-3.x pandas

我需要在我的数据帧中有一个第一个和最后一个时间戳的字符串(我将它们用作索引)以便以后使用它。我已在互联网上搜索过它,但无法找到它。

这就是我阅读.csv文件的方式

with open(filename, 'r') as csvfile:
        df = pandas.read_csv(csvfile, 
                parse_dates=True, 
                index_col=0, 
                sep=';', 
                skipinitialspace=True, 
                low_memory=False, 
                names=range(0,n))

我尝试使用df.iloc [0],但无法正确使用它。我怎样才能获得时间戳(作为字符串)?

示例csv:

                       1    2
2015-07-02 21:40:00 -2.7 -2.7
2015-07-02 21:50:00 -2.5 -2.5
2015-07-02 22:00:00 -2.5 -2.5

我试图获得第一个(2015-07-02 21:40:00)和最后一个(2015-07-02 22:00:00)时间戳。

1 个答案:

答案 0 :(得分:4)

你想要什么样的字符串?

df.index.min()
df.index.max()

获得类似

的内容
In [8]: df.index.min()
Out[8]: Timestamp('2000-01-01 00:00:00')

不知道其输出是否有任何标志。就个人而言,我只是做了一些 - 可能是愚蠢的 - 硬编码的东西,比如

Maxi_date1 = str(df.index.max())
Maxi_date = Maxi_date1[0:10]

仅举例YYYY-MM-DD

修改

我刚刚自己陷入了一种情况,我过度需要这个功能,因为这个Q / A有一些观点,这里有一个更新,使它更完整:

大多数情况下,我只需要特定部分时间,例如那一年。虽然上面也有效(只需[0:3]来获得年份),但使用内置函数可能更好。

只获得年份或月份:

Maxi_date = df.index.min()
Maxi_year = Maxi_date.year
Maxi_mon = Maxi_date.month

依此类推,如列出here