首页 > 解决方案 > 如何在python中将列表与数据框连接起来

问题描述

我有两个列表,每个列表都包含从 csv 文件导入的相同数量的数据框。

所以“数据框”有 12 个数据框,“数据框潜力”也有 12 个数据框。

它们具有相同的行数,我想将它们连接起来(每个一对)。

数据框

    [                       Name  people  ...  Tcs_sys_sup_C  Tcs_sys_re_C
 DATE                                 ...                             
 2011-01-01 00:00:00  B10540    42.0  ...            0.0           0.0
 2011-01-01 01:00:00  B10540    42.0  ...            0.0           0.0
 2011-01-01 02:00:00  B10540    42.0  ...            0.0           0.0
 2011-01-01 03:00:00  B10540    42.0  ...            0.0           0.0
 2011-01-01 04:00:00  B10540    42.0  ...            0.0           0.0
 ...                     ...     ...  ...            ...           ...
 2011-12-31 19:00:00  B10540    41.0  ...            0.0           0.0
 2011-12-31 20:00:00  B10540    41.0  ...            0.0           0.0
 2011-12-31 21:00:00  B10540    42.0  ...            0.0           0.0
 2011-12-31 22:00:00  B10540    42.0  ...            0.0           0.0
 2011-12-31 23:00:00  B10540    42.0  ...            0.0           0.0
 
 [8760 rows x 136 columns],
                        Name  people  ...  Tcs_sys_sup_C  Tcs_sys_re_C
 DATE                                 ...                             
 2011-01-01 00:00:00  B10549     1.0  ...            0.0           0.0
 2011-01-01 01:00:00  B10549     1.0  ...            0.0           0.0
 2011-01-01 02:00:00  B10549     1.0  ...            0.0           0.0
 2011-01-01 03:00:00  B10549     1.0  ...            0.0           0.0
 2011-01-01 04:00:00  B10549     1.0  ...            0.0           0.0
 ...                     ...     ...  ...            ...           ...
 2011-12-31 19:00:00  B10549     1.0  ...            0.0           0.0
 2011-12-31 20:00:00  B10549     1.0  ...            0.0           0.0
 2011-12-31 21:00:00  B10549     1.0  ...            0.0           0.0
 2011-12-31 22:00:00  B10549     1.0  ...            0.0           0.0
 2011-12-31 23:00:00  B10549     1.0  ...            0.0           0.0
 
 [8760 rows x 136 columns],.....

和数据框潜力

    [                     SC_FP_walls_south_Q_kWh  ...  T_SC_re_C
 Date                                          ...           
 2011-01-01 00:00:00                      0.0  ...        NaN
 2011-01-01 01:00:00                      0.0  ...        NaN
 2011-01-01 02:00:00                      0.0  ...        NaN
 2011-01-01 03:00:00                      0.0  ...        NaN
 2011-01-01 04:00:00                      0.0  ...        NaN
 ...                                      ...  ...        ...
 2011-12-31 19:00:00                      0.0  ...        NaN
 2011-12-31 20:00:00                      0.0  ...        NaN
 2011-12-31 21:00:00                      0.0  ...        NaN
 2011-12-31 22:00:00                      0.0  ...        NaN
 2011-12-31 23:00:00                      0.0  ...        NaN
 
 [8760 rows x 18 columns],
                      SC_FP_walls_south_Q_kWh  ...  T_SC_re_C
 Date                                          ...           
 2011-01-01 00:00:00                      0.0  ...        NaN
 2011-01-01 01:00:00                      0.0  ...        NaN
 2011-01-01 02:00:00                      0.0  ...        NaN
 2011-01-01 03:00:00                      0.0  ...        NaN
 2011-01-01 04:00:00                      0.0  ...        NaN
 ...                                      ...  ...        ...
 2011-12-31 19:00:00                      0.0  ...        NaN
 2011-12-31 20:00:00                      0.0  ...        NaN
 2011-12-31 21:00:00                      0.0  ...        NaN
 2011-12-31 22:00:00                      0.0  ...        NaN
 2011-12-31 23:00:00                      0.0  ...        NaN
 
 [8760 rows x 18 columns],....

我尝试了一个非常简单的

frames=[dataframes_potencial_process,dataframes] 
pd.concat(frames)
TypeError: cannot concatenate object of type '<class 'list'>'; only Series and DataFrame objs are valid

谢谢

标签: pythonlistdataframeconcatenation

解决方案


正如您在问题中所述,您希望将它们连接起来(每个一对)。您可以使用zipand :pd.concataxis=1

pairs = [pd.concat(d, axis=1) for d in zip(dataframes_potencial_process, dataframes)]

# print the pairs:
print(*pairs, sep="\n\n")

推荐阅读