Возьмите несколько списков в фрейм данных
Как мне взять несколько списков и поместить их в качестве разных столбцов в фрейм данных python? Я попытался следовать спискам чтения в столбцы фрейма данных pandas, но у меня были некоторые проблемы.
Попытка 1:
- есть три списка, и застегнуть их вместе и использовать этот res = zip (lst1,lst2,lst3)
- дает только один столбец
Попытка 2:
percentile_list = pd.DataFrame({'lst1Tite' : [lst1],
'lst2Tite' : [lst2],
'lst3Tite':[lst3]
}, columns=['lst1Tite','lst1Tite', 'lst1Tite'])
- дает либо одну строку на 3 столбца (как показано выше), либо если я транспонирую это 3 строки и 1 столбец
Как получить 100 строк (длина каждого независимого списка) по 3 столбца (три списка) pandas dataframe?
4 ответа:
Я думаю, что ты почти там, попробуйте удалить лишние квадратные скобки
lst
' s (Также вам не нужно указывать имена столбцов при создании фрейма данных из dict, как это):import pandas as pd lst1 = range(100) lst2 = range(100) lst3 = range(100) percentile_list = pd.DataFrame( {'lst1Title': lst1, 'lst2Title': lst2, 'lst3Title': lst3 }) percentile_list lst1Title lst2Title lst3Title 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5 6 6 6 6 ...
Если вам нужно более эффективное решение, вы можете использовать
np.column_stack
, а неzip
как и в вашей первой попытке, это имеет около 2x ускорение на примере здесь, однако приходит на немного стоимости читаемости на мой взгляд:import numpy as np percentile_list = pd.DataFrame(np.column_stack([lst1, lst2, lst3]), columns=['lst1Title', 'lst2Title', 'lst3Title'])
добавлять к Гуру Адитьяответ здесь. Нет необходимости использовать карту. Вы можете сделать это просто:
pd.DataFrame(list(zip(lst1, lst2, lst3)))
это установит имена столбцов как 0,1,2. Чтобы задать собственные имена столбцов, можно передать ключевое слово argument
columns
на способ выше.pd.DataFrame(list(zip(lst1, lst2, lst3)), columns=['lst1_title','lst2_title', 'lst3_title'])