Python,Pandas,将时间戳转换为句点 让我们考虑下面的数据帧: date_range = pd.date_range(dt(2010,1,1), dt(2010,1,31), freq='1D') df = pd.DataFrame(data = np.random.rand(len(date_range),2), index = date_range)
如果我按1周的时间段对数据点进行分组,并将组定义可视化,我会得到:Python,Pandas,将时间戳转换为句点 让我们考虑下面的数据帧: date_range = pd.date_range(dt(2010,1,1), dt(2010,1,31), freq='1D') df = pd.DataFrame(data = np.random.rand(len(date_range),2), index = date_range),python,pandas,Python,Pandas,如果我按1周的时间段对数据点进行分组,并将组定义可视化,我会得到: In: [1]:df.groupby(pd.TimeGrouper('W')).groups Out:[1]: {Timestamp('2010-01-03 00:00:00', freq='W-SUN'): 3, Timestamp('2010-01-10 00:00:00', freq='W-SUN'): 10, Timestamp('2010-01-17 00:00:00', freq='W
In: [1]:df.groupby(pd.TimeGrouper('W')).groups
Out:[1]:
{Timestamp('2010-01-03 00:00:00', freq='W-SUN'): 3,
Timestamp('2010-01-10 00:00:00', freq='W-SUN'): 10,
Timestamp('2010-01-17 00:00:00', freq='W-SUN'): 17,
Timestamp('2010-01-24 00:00:00', freq='W-SUN'): 24,
Timestamp('2010-01-31 00:00:00', freq='W-SUN'): 31}
我检索该词典的键:
In: [2]: list(df.groupby(pd.TimeGrouper('W')).keys())
Out:[2]:
[Timestamp('2010-01-03 00:00:00', freq='W-SUN'),
Timestamp('2010-01-10 00:00:00', freq='W-SUN'),
Timestamp('2010-01-31 00:00:00', freq='W-SUN'),
Timestamp('2010-01-17 00:00:00', freq='W-SUN'),
Timestamp('2010-01-24 00:00:00', freq='W-SUN')]
然而,我留下了一些有趣的变量,比如Timestamp('2010-01-24 00:00:00',freq='W-SUN')
,它们的前缀是Timestamp
,但结构类似句点。如何将这些值转换为实际期间?您可以使用:
a = df.groupby(pd.TimeGrouper('W')).groups
per = [pd.Period(x, freq=x.freq) for x in a]
print (per)
[Period('2010-01-18/2010-01-24', 'W-SUN'),
Period('2010-01-04/2010-01-10', 'W-SUN'),
Period('2010-01-25/2010-01-31', 'W-SUN'),
Period('2010-01-11/2010-01-17', 'W-SUN'),
Period('2009-12-28/2010-01-03', 'W-SUN')]
但是变量
时间戳('2010-01-03 00:00:00',freq='W-SUN')
是正确的还是错误的?为什么时间戳会附加一个freq值?我认为这是正确的。但是a我不确定我是否知道,请解释一下。但似乎如果频率改变,fteq就会增加。