繁体   English   中英

将不等的列表列表解包到熊猫数据框中

[英]unpacking of unequal list of lists into a pandas dataframe

我在变量mydata有以下列表

[
  [["item1"], ["2016","value1"], ["2017","value2"], ["2018","value3"], ["2019","value4"]],
  [["item2"], ["2016","value1"], ["2017","value2"], ["2018","value3"], ["2019","value4"]],
  [["item3"], ["2016","value1"], ["2017","value2"], ["2018","value3"], ["2019","value4"]],
  [["item4"], ["2016","value1"], ["2017","value2"], ["2018","value3"], ["2019","value4"]],
]

我一直在尝试将其放入如下所示的数据框中:

index     item1  | item2  | item3  | item4
2016      value1 | value1 | value1 | value1
2017      value2 | value2 | value2 | value2
2018      value3 | value3 | value3 | value3
2019      value4 | value4 | value4 | value4

但是,当我尝试DataFrame(mydata) ,它给了我以下结果:

index   0                 | 1                 | 2                 | 3  
item1   ["2016","value1"] | ["2017","value2"] | ["2018","value3"] | ["2019","value4"]
item2   ["2016","value1"] | ["2017","value2"] | ["2018","value3"] | ["2019","value4"]
item3   ["2016","value1"] | ["2017","value2"] | ["2018","value3"] | ["2019","value4"]
item4   ["2016","value1"] | ["2017","value2"] | ["2018","value3"] | ["2019","value4"]

我认为这是因为mydata的性质,其中列表列表分布不均。 但是是否可以按照我指定的方式将其解压缩到数据dataFrame中? 或者我是否必须创建一个 for 循环来遍历每个元素并将其解压缩到dataFrame

首先创建dict一种方法:

df = pd.DataFrame({l[0][0]:dict(l[1:]) for l in mydata})
print(df)

输出:

       item1   item2   item3   item4
2016  value1  value1  value1  value1
2017  value2  value2  value2  value2
2018  value3  value3  value3  value3
2019  value4  value4  value4  value4

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM