具有合并索引的列表中的Pandas数据帧

时间:2016-06-25 20:35:59

标签: python pandas dataframe merge

我是python的新手,所以叫我一个菜鸟,但我找不到一个明确的答案。我想从包含合并索引的列表列表中获取pandas数据帧。我正在运行一个循环,并且每次运行中的数量观察(这里任意3)可能不同。这也适用于日期。对不起,我无法管理一个更真实的例子。

import pandas as pd

# First create a list of lists
my_list = [[] for i in range(3)]

# Now fill the list in a loop

for i in range(3):
    for i in range(3):
        my_list[i].append(pd.DataFrame({"signal_%d" % i: [i], "date": pd.Timestamp('2015-10-26 16:24:08.572000')}))

>>> my_list

[[                     date  signal_0
0 2015-10-26 16:24:08.572         0,                      date  signal_0
0 2015-10-26 16:24:08.572         0,                      date  signal_0
0 2015-10-26 16:24:08.572         0], [                     date  signal_1
0 2015-10-26 16:24:08.572         1,                      date  signal_1
0 2015-10-26 16:24:08.572         1,                      date  signal_1
0 2015-10-26 16:24:08.572         1], [                     date  signal_2
0 2015-10-26 16:24:08.572         2,                      date  signal_2
0 2015-10-26 16:24:08.572         2,                      date  signal_2

如何获取以下数据框

>>> perfect_df
                         signal_0  signal_1  signal_2
2015-10-26 16:24:08.572         0         1         2
2015-10-26 16:24:08.572         0         1         2  
2015-10-26 16:24:08.572         0         1         2

pd.DataFrame(my_list)似乎无法运作。

提前致谢! 帕特里克

1 个答案:

答案 0 :(得分:0)

除非我遗漏了某些内容,否则您可以直接构建数据框

In [65]: pd.DataFrame(
    index=pd.to_datetime(['2015-10-26 16:24:08.572'] * 3),
    data={
        'signal_0': 0,
        'signal_1': 1,
        'signal_2': 2
    }
)
Out[65]: 
                         signal_0  signal_1  signal_2
2015-10-26 16:24:08.572         0         1         2
2015-10-26 16:24:08.572         0         1         2
2015-10-26 16:24:08.572         0         1         2