Создание 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