pandas 数据框的列表列表列表
List of lists of lists to pandas dataframe
我有一个列表列表列表。最外面的列表长度为 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 个附加列以指定类别名称?
我可以为两层嵌套的列表执行此操作,但这个三层嵌套的列表给我带来了困难。
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
我有一个列表列表列表。最外面的列表长度为 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 个附加列以指定类别名称?
我可以为两层嵌套的列表执行此操作,但这个三层嵌套的列表给我带来了困难。
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