Создание dataframe из CSV файл, содержащего списки

Как создать датафрейм с колонками:

  • Рейтинг
  • Название страны
  • Год
  • Население

Если в CSV файле данные годов и населения являются списками?

#,Country,Year,Population,Urban Population
1,India,"[2024, 2023, 2022, 2020, 2015, 2010, 2005, 2000, 1995, 1990, 1985, 1980, 1975, 1970, 1965, 1960, 1955]","[1441719852, 1428627663, 1417173173, 1396387127, 1322866505, 1240613620, 1154638713, 1059633675, 964279129, 870452165, 780242084, 696828385, 623524219, 557501301, 500114346, 445954579, 398577992]","[530387142, 518239122, 506304869, 483098640, 429069459, 380744554, 334479406, 291350282, 255558824, 222296728, 190321782, 160941941, 132533810, 109388950, 93493844, 80565723, 71958495]"

Ответы (1 шт):

Автор решения: strawdog

Если колонок не много, то можно сразу указать конвертор при открытии файла:

import pandas as pd
df = pd.read_csv("1.csv", converters={2: pd.eval, 3: pd.eval, 4: pd.eval})
df = df.explode([2,3,4])
print(df)

df:

   0      1     2           3          4
0  1  India  2024  1441719852  530387142
0  1  India  2023  1428627663  518239122
0  1  India  2022  1417173173  506304869
0  1  India  2020  1396387127  483098640
0  1  India  2015  1322866505  429069459
0  1  India  2010  1240613620  380744554
0  1  India  2005  1154638713  334479406
0  1  India  2000  1059633675  291350282
0  1  India  1995   964279129  255558824
0  1  India  1990   870452165  222296728
0  1  India  1985   780242084  190321782
0  1  India  1980   696828385  160941941
0  1  India  1975   623524219  132533810
0  1  India  1970   557501301  109388950
0  1  India  1965   500114346   93493844
0  1  India  1960   445954579   80565723
0  1  India  1955   398577992   71958495
→ Ссылка