Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pandas 数组长度与索引长度不匹配_Pandas_Date_Time Series - Fatal编程技术网

Pandas 数组长度与索引长度不匹配

Pandas 数组长度与索引长度不匹配,pandas,date,time-series,Pandas,Date,Time Series,我希望将几个具有不同日期的时间序列组合到一个数据帧中 每个时间序列的列名都是date和px 我创建了一个日期索引日期,并尝试通过以下操作组合所有时间序列: 日期=pd.日期范围为'01/01/2017',期间=12,频率=M' 预期产出: date a b c d e 2017-01-31 -0.4579 nan . .

我希望将几个具有不同日期的时间序列组合到一个数据帧中

每个时间序列的列名都是date和px

我创建了一个日期索引日期,并尝试通过以下操作组合所有时间序列:

日期=pd.日期范围为'01/01/2017',期间=12,频率=M'

预期产出:

      date          a           b           c           d           e
2017-01-31    -0.4579         nan           .           .           .
2017-02-28     0.5787         nan           .           .           .
2017-03-31    -2.2319     -1.0244         etc         etc         etc
2017-04-30    -2.0713     -2.1069
2017-05-31        nan      2.0158
2017-06-30        nan      1.0541
2017-07-31        nan      1.8901
2017-08-31        nan         nan
2017-09-30        nan         nan
.
.
etc

数据帧的所有列必须具有相同的长度,因此不能从长度不同的序列中创建数据帧。在您的案例中,可以使用多个merge,参数how='outer',类似于这样

df1.merge(df2, on = 'date', how = 'outer').merge(df3, on = 'date', how = 'outer')
由于您没有提供单个系列的片段,因此很难在此处尝试代码并显示输出。

IIUC:

dfs = [df1,df2,df3]
pd.concat([df.set_index('date') for df in dfs], axis=1).reset_index()

这太棒了!是否最好仅使用df.columns重命名列?@J.D.Marlin,这取决于。。。你想如何命名它们?可能多达30个左右。每个时间序列都有日期、px、px_2、px_3等,当将它们连接在一起时,我希望它们作为a、'a_2、a_3、b、b_2、b_3等。您可以发布打印连接的列的输出吗?
dfs = [df1,df2,df3]
pd.concat([df.set_index('date') for df in dfs], axis=1).reset_index()