我有以下列表:
l1 = [(1,2),(3,4),(5,6)]
l2 = [7,8,9]
我希望输出为df
df =
c1 c2 c3
0 1 2 7
1 3 4 8
2 5 6 9
到目前为止,我可以将元组分开为
df = pd.DataFrame(l1)
给了我:
c1 c2
0 1 2
1 3 4
2 5 6
我想为上面提到的多个不同形式的列表做。
答案 0 :(得分:4)
2-list表格:
pd.DataFrame([*x, y] for x, y in zip(l1, l2))
0 1 2
0 1 2 7
1 3 4 8
2 5 6 9
多列表形式:
from collections import Sequence
lists = [l1, l2, ...]
pd.DataFrame([
[
k for j in i for k in (j
if isinstance(j, Sequence) else [j]
)]
for i in zip(*lists)
])
0 1 2
0 1 2 7
1 3 4 8
2 5 6 9
无论l_i
是元组列表还是整数列表,这都适用于任何情况。
答案 1 :(得分:2)
您也可以使用pd.concat
,并连接pd.DataFrame(l1)
和pd.Dataframe(l2)
生成的数据框:
df = pd.concat([pd.DataFrame(l1), pd.DataFrame(l2)], axis=1)
>>> df
0 1 0
0 1 2 7
1 3 4 8
2 5 6 9