列表嵌套列表转换为 Pandas 数据框。

3

我有一个列表的列表的列表。最外层的列表长度为20(分别是不同的类别)。中间的列表长度可变(时间戳列表)。内部的列表长度为5(将每个时间戳分割)。例如:

sTimestamps[0][:5][:] = 

[['Tue', 'Feb', '7', '10:06:30', '2017'],
 ['Tue', 'Feb', '7', '10:07:06', '2017'],
 ['Tue', 'Feb', '7', '10:07:40', '2017'],
 ['Tue', 'Feb', '7', '10:12:36', '2017'],
 ['Tue', 'Feb', '7', '10:13:24', '2017']]

我还有一个名为categories的字符串列表,大小为2,其中包含类别名称,每个索引对应于最外层列表的20个索引的相同索引号。

我该如何将其转换为pandas数据框,其中列是时间戳的5个组成部分,加上第6列额外的列以指定类别名称?

我可以为两个嵌套列表做到这一点,但是这个三重嵌套列表让我很困扰。


什么是三层嵌套列表?展示给我们代码,言语是模糊的。 - Stephen Rauch
1个回答

7
sTimeStamps = [
    [['Tue', 'Feb', '7', '10:06:30', '2017'],
     ['Tue', 'Feb', '7', '10:07:06', '2017'],
     ['Tue', 'Feb', '7', '10:07:40', '2017'],
     ['Tue', 'Feb', '7', '10:12:36', '2017'],
     ['Tue', 'Feb', '7', '10:13:24', '2017']],
    [['Tue', 'Feb', '7', '10:06:30', '2017'],
     ['Tue', 'Feb', '7', '10:07:06', '2017'],
     ['Tue', 'Feb', '7', '10:07:40', '2017']],
    ]

categories = ['cat%s' %i for i in range(20)]

pd.concat([pd.DataFrame(d) for d in sTimeStamps], keys=categories)

          0    1  2         3     4
cat0 0  Tue  Feb  7  10:06:30  2017
     1  Tue  Feb  7  10:07:06  2017
     2  Tue  Feb  7  10:07:40  2017
     3  Tue  Feb  7  10:12:36  2017
     4  Tue  Feb  7  10:13:24  2017
cat1 0  Tue  Feb  7  10:06:30  2017
     1  Tue  Feb  7  10:07:06  2017
     2  Tue  Feb  7  10:07:40  2017

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接