PythonPandas日期时间索引.hou

2024-10-01 09:25:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在数据帧中为时间戳HOUR,DAY,MONTH和DatetimeIndex的值构建3个单独的列。在

因为我的数据集是从CSV文件中读取的,所以我对无法复制的数据进行了赋值。在

boilerDf = pd.read_csv('C:\\Users\\Python Scripts\\Deltadata.csv', index_col='Date', parse_dates=True)

print(boilerDf.info())

这将返回:

^{pr2}$

我可以看到pandas.pydata.org除了我想创建单独的数据帧(列)之外,我正在尝试的是3种方法:

DatetimeIndex.month 
DatetimeIndex.day   
DatetimeIndex.hour  

下面的代码不适用于为日期时间索引的小时添加单独的数据帧列。。。有什么想法吗?在

boilerDf['Hour'] = boilerDf.DatetimeIndex.hour

谨致问候

我在Github上也上传了数据: bbartling/Data on Github


Tags: 文件csv数据githubread时间pd赋值
1条回答
网友
1楼 · 发布于 2024-10-01 09:25:45

我最初建议。索引.strftime()为这个答案。然而,Henry还发现了jezrael的Pandas time series data Index from a string to float,它返回integer类型的列。因此,我在这里包含了后者的扩展版本。当使用这两种不同的方法时,输出有一点不同。在

from numpy.random import randint
import pandas as pd

# Create a df with a date-time index with data every 6 hours
rng = pd.date_range('1/5/2018 00:00', periods=5, freq='6H')
df = pd.DataFrame({'Random_Number':randint(1, 10, 5)}, index=rng)

# Getting different time information in columns of type object
df['year'] = df.index.strftime('%Y')
df['month'] = df.index.strftime('%b')
df['date'] = df.index.strftime('%d')
df['hour'] = df.index.strftime('%H')
df['Day_of_week'] = df.index.strftime('%a')

# Getting different time information in columns of type integer
df['year'] = df.index.year
df['month'] = df.index.month
df['date'] = df.index.day
df['hour'] = df.index.hour
df['Day_of_week'] = df.index.dayofweek

df.head()
                     Random_Number  year month date hour Day_of_week
date                                                                
2018-01-05 00:00:00              8  2018   Jan   05   00         Fri
2018-01-05 06:00:00              8  2018   Jan   05   06         Fri
2018-01-05 12:00:00              1  2018   Jan   05   12         Fri
2018-01-05 18:00:00              4  2018   Jan   05   18         Fri
2018-01-06 00:00:00              7  2018   Jan   06   00         Sat

                     Random_Number  year  month  date  hour  Day_of_week
2018-01-05 00:00:00              3  2018      1     5     0            4
2018-01-05 06:00:00              1  2018      1     5     6            4
2018-01-05 12:00:00              9  2018      1     5    12            4
2018-01-05 18:00:00              5  2018      1     5    18            4
2018-01-06 00:00:00              8  2018      1     6     0            5

相关问题 更多 >