问题陈述:创建一个包含多个列的数据框,并使用5分钟间隔的日期范围系列填充一列。
尝试过的解决方案:
最初只创建一行/ 5列(全部为“NAN”)。
用于生成日期范围的命令:
rf = pd.date_range('2000-1-1', periods=5, freq='5min').
rf的O / P:
DatetimeIndex(['2000-01-01 00:00:00', '2000-01-01 00:05:00',
'2000-01-01 00:10:00', '2000-01-01 00:15:00',
'2000-01-01 00:20:00'],
dtype='datetime64[ns]', freq='5T')
当我尝试将rf分配给df的一列(df ['column1'] = rf)。时,它会抛出异常,如下所示(复制最后一行异常)。
Traceback (most recent call last):
File "/root/miniconda3/lib/python3.6/site-packages/pandas/core/series.py", line 2879, in _sanitize_index
raise ValueError('Length of values does not match length of ' 'index')
虽然我理解了这个问题,但我不知道解决方案。我正在寻找一种简单的方法来实现这一目标。
答案 0 :(得分:1)
我想,我正在慢慢了解数据帧的功能/用法。
最初创建一个数据框:
df = pd.DataFrame(index=range(100),columns=['A','B','C'])
然后创建了一个date_range。
date = pd.date_range('2000-1-1', periods=100, freq='5T')
使用“assign”功能,将date_range添加为已创建数据框(df)的新列。
df = df.assign(D=date)
df的最终O / P:
df[:5]
A B C D
0 NaN NaN NaN 2000-01-01 00:00:00
1 NaN NaN NaN 2000-01-01 00:05:00
2 NaN NaN NaN 2000-01-01 00:10:00
3 NaN NaN NaN 2000-01-01 00:15:00
4 NaN NaN NaN 2000-01-01 00:20:00
答案 1 :(得分:0)
您的数据框只有一行,并且您尝试插入五行数据。