我有一个列表列表
lst = [[2, 0, 1, 6, 7, 8], [4, 3, 5]]
,我想拉平列表,并为合并到data.frame中的列表中的每个列表分配唯一的ID。
所需的输出:
value group
0 2 0
1 0 0
2 1 0
3 6 0
4 7 0
5 8 0
6 4 1
7 3 1
8 5 1
答案 0 :(得分:2)
您将需要进行一些花哨的拼合:
flattened = [(item, index) for index, sublist in enumerate(lst) for item in sublist]
df = pd.DataFrame(flattened, columns=['value','group'])
答案 1 :(得分:1)
如果要使用Pandas DataFrame:
import pandas as pd
lst = [[2, 0, 1, 6, 7, 8], [4, 3, 5]]
final_list = []
for i, l in enumerate(lst):
for num in l:
final_list.append({'value': num, 'group': i})
df = pd.DataFrame(final_list)
答案 2 :(得分:1)
您可以使用以下代码:
new_lst = []
for group in lst:
for n in group:
new_lst.append({"group":lst.index(group),"value": n})
答案 3 :(得分:0)
在要求输出之前,您应该尝试一下。
在具有唯一标识符的列表列表中循环浏览,您可能想使用枚举“为列表提供索引器”的函数。
for i,sub_list in enumerate(lst):
identifier = i
[(value,identifier) for value in sublist]
....
希望这会有所帮助