Juliano Oliveira Hausen de Cos:
Tengo tres listas de tuplas y el primer elemento de esas listas es de un año, como se muestra a continuación.
list1 = [
('2010', 1783675.0), ('2011', 1815815.0), ('2012', 1633258.0), ('2013', 1694062.0), ('2014', 1906527.0),
('2015', 1908661.0), ('2016', 2492979.0), ('2017', 2846997.0), ('2018', 2930313.0), ('2019', 2654724.0)
]
list2 = [
('2010', 302816.0), ('2011', 229549.0), ('2012', 323063.0), ('2013', 285066.0), ('2014', 282003.0),
('2015', 354500.0), ('2016', 275383.0), ('2017', 322074.0), ('2018', 366909.0), ('2019', 297942.0)
]
list3 =[
('2010', 149036.0), ('2011', 144112.0), ('2012', 173944.0), ('2013', 205724.0), ('2014', 214019.0),
('2015', 261462.0), ('2016', 260646.0), ('2017', 279267.0), ('2018', 288120.0), ('2019', 277106.0)
]
Quiero crear un pandas.DataFrame usando esas listas, fijando el año como el índice de la fila:
list1 list2 list3
2010 1783675.0 302816.0 149036.0
2011 1815815.0 229549.0 144112.0
2012 1633258.0 323063.0 173944.0
2013 1694062.0 285066.0 205724.0
2014 1906527.0 282003.0 214019.0
2015 1908661.0 354500.0 261462.0
2016 2492979.0 275383.0 260646.0
2017 2846997.0 322074.0 279267.0
2018 2930313.0 366909.0 288120.0
2019 2654724.0 297942.0 277106.0
Oliver.R:
Puede iterar sobre las listas y crear un diccionario en el formato correcto, y luego convertir eso en una trama de datos. Tenga en cuenta que esto supone listas ordenadas, con los mismos años en cada lista.
import pandas as pd
list1 = [('2010', 1783675.0), ('2011', 1815815.0), ('2012', 1633258.0),
('2013', 1694062.0), ('2014', 1906527.0), ('2015', 1908661.0),
('2016', 2492979.0), ('2017', 2846997.0), ('2018', 2930313.0),
('2019', 2654724.0)]
list2 = [('2010', 302816.0), ('2011', 229549.0), ('2012', 323063.0),
('2013', 285066.0), ('2014', 282003.0), ('2015', 354500.0),
('2016', 275383.0), ('2017', 322074.0), ('2018', 366909.0),
('2019', 297942.0)]
list3 =[('2010', 149036.0), ('2011', 144112.0), ('2012', 173944.0),
('2013', 205724.0), ('2014', 214019.0), ('2015', 261462.0),
('2016', 260646.0), ('2017', 279267.0), ('2018', 288120.0),
('2019', 277106.0)]
df_dict = {}
years = [el[0] for el in list1]
df_dict["list1"] = [el[1] for el in list1]
df_dict["list2"] = [el[1] for el in list2]
df_dict["list3"] = [el[1] for el in list3]
df = pd.DataFrame(df_dict, index=years)