Python熊猫-非连续时间序列?
熊猫内部是否有办法创建一个时间序列,该时间序列由一段时间内每天选定的时钟时间组成?例如:让我们将2018年的所有日子作为日期,时间(时钟)为4个不同的时间,如Python熊猫-非连续时间序列?,python,python-3.x,pandas,time-series,Python,Python 3.x,Pandas,Time Series,熊猫内部是否有办法创建一个时间序列,该时间序列由一段时间内每天选定的时钟时间组成?例如:让我们将2018年的所有日子作为日期,时间(时钟)为4个不同的时间,如[09:00,10:35,14:00,15:50] 所以我想要的是一个时间序列,比如: 2018-01-01 09:00 2018-01-01 10:35 2018-01-01 14:00 2018-01-01 15:50 2018-01-02 09:00 2018-01-02 10:35 2018-01-02 14:00 2018-01-
[09:00,10:35,14:00,15:50]
所以我想要的是一个时间序列,比如:
2018-01-01 09:00
2018-01-01 10:35
2018-01-01 14:00
2018-01-01 15:50
2018-01-02 09:00
2018-01-02 10:35
2018-01-02 14:00
2018-01-02 15:50
2018-01-03 09:00
...
蒂亚,
T
您应该能够导入时间并在其中循环,以使用所需的日期格式替换日期
然后,您可以将列表输入数据框
import pandas as pd
df = pd.DataFrame({‘DateTime’: dayslist})
print(df)
您应该能够导入时间并在其中循环,以使用所需的日期格式替换日期
然后,您可以将列表输入数据框
import pandas as pd
df = pd.DataFrame({‘DateTime’: dayslist})
print(df)
您可以这样做,这比使用循环快得多: 1.)创建日期列表:
In [34]: start_dt = '2018-01-01'
# For whole year, use periods=365
In [45]: days_list = pd.date_range(pd.to_datetime(start_dt), periods=3)
In [59]: days_list = [i.date() for i in days_list] # Keeping only date part
2.)创建一个时间列表:
In [38]: timelist = ['09:00', '10:35', '14:00', '15:50']
3.)通过重复days\u列表中的每个元素来扩展列表
4次,每次一个:
In [60]: import numpy as np
In [61]: days_list = np.repeat(days_list, 4)
4.)通过将时间列表乘以天数列表中的唯一日期来扩展时间列表,使其具有相同的长度:
因此,因为我们在创建天数列表时使用了periods=3
。因此,通过相同的因素扩展时间列表
In [64]: timelist = timelist * 3
5.)创建数据帧:
In [65]: df = pd.DataFrame()
In [66]: df['Date'] = days_list
In [68]: df['time'] = timelist
最终输出:
In [78]: df
Out[78]:
Date time
0 2018-01-01 09:00
1 2018-01-01 10:35
2 2018-01-01 14:00
3 2018-01-01 15:50
4 2018-01-02 09:00
5 2018-01-02 10:35
6 2018-01-02 14:00
7 2018-01-02 15:50
8 2018-01-03 09:00
9 2018-01-03 10:35
10 2018-01-03 14:00
11 2018-01-03 15:50
您可以这样做,这比使用循环快得多: 1.)创建日期列表:
In [34]: start_dt = '2018-01-01'
# For whole year, use periods=365
In [45]: days_list = pd.date_range(pd.to_datetime(start_dt), periods=3)
In [59]: days_list = [i.date() for i in days_list] # Keeping only date part
2.)创建一个时间列表:
In [38]: timelist = ['09:00', '10:35', '14:00', '15:50']
3.)通过重复days\u列表中的每个元素来扩展列表
4次,每次一个:
In [60]: import numpy as np
In [61]: days_list = np.repeat(days_list, 4)
4.)通过将时间列表乘以天数列表中的唯一日期来扩展时间列表,使其具有相同的长度:
因此,因为我们在创建天数列表时使用了periods=3
。因此,通过相同的因素扩展时间列表
In [64]: timelist = timelist * 3
5.)创建数据帧:
In [65]: df = pd.DataFrame()
In [66]: df['Date'] = days_list
In [68]: df['time'] = timelist
最终输出:
In [78]: df
Out[78]:
Date time
0 2018-01-01 09:00
1 2018-01-01 10:35
2 2018-01-01 14:00
3 2018-01-01 15:50
4 2018-01-02 09:00
5 2018-01-02 10:35
6 2018-01-02 14:00
7 2018-01-02 15:50
8 2018-01-03 09:00
9 2018-01-03 10:35
10 2018-01-03 14:00
11 2018-01-03 15:50
尝试熊猫和熊猫的组合 将其与
# Put it into a Series
val = np.arange(0,len(filtered_hours))
Ser = pd.Series(val,index=filtered_hours)
print(Ser)
2018-01-01 00:00:00 0
2018-01-01 09:00:00 1
2018-01-01 10:35:00 2
2018-01-01 14:00:00 3
2018-01-01 15:50:00 4
2018-01-02 00:00:00 5
2018-01-02 09:00:00 6
2018-01-02 10:35:00 7
2018-01-02 14:00:00 8
2018-01-02 15:50:00 9
2018-01-03 00:00:00 10
2018-01-03 09:00:00 11
2018-01-03 10:35:00 12
2018-01-03 14:00:00 13
2018-01-03 15:50:00 14
2018-01-04 00:00:00 15
2018-01-04 09:00:00 16
2018-01-04 10:35:00 17
尝试熊猫和熊猫的组合 将其与
# Put it into a Series
val = np.arange(0,len(filtered_hours))
Ser = pd.Series(val,index=filtered_hours)
print(Ser)
2018-01-01 00:00:00 0
2018-01-01 09:00:00 1
2018-01-01 10:35:00 2
2018-01-01 14:00:00 3
2018-01-01 15:50:00 4
2018-01-02 00:00:00 5
2018-01-02 09:00:00 6
2018-01-02 10:35:00 7
2018-01-02 14:00:00 8
2018-01-02 15:50:00 9
2018-01-03 00:00:00 10
2018-01-03 09:00:00 11
2018-01-03 10:35:00 12
2018-01-03 14:00:00 13
2018-01-03 15:50:00 14
2018-01-04 00:00:00 15
2018-01-04 09:00:00 16
2018-01-04 10:35:00 17
是的,这就是我目前解决问题的方法,但我想在熊猫时间序列功能中可能有一种方法可以在没有显式循环的情况下实现同样的功能。是的,这就是我目前解决问题的方法,但我想在熊猫时间序列功能中可能有一种方法可以在没有显式循环的情况下实现同样的功能。太好了。如果有帮助,请投票并接受答案。太好了。如果有帮助,请投票并接受答案。