Как создать фрейм данных с несколькими списками / массивами в Python
У меня есть много списков, который состоит из 1d данных. как ниже:
list1 = [1,2,3,4...]
list2 = ['a','b','c'...]
Теперь я должен создать фрейм данных, как показано ниже:
df = [[1,'a'],[2,'b'],[3,'c']]
Мне нужен этот фрейм данных, чтобы я мог профилировать каждый столбец с помощью pandas_profiling. Пожалуйста, предложите.
я пытался
list1+list2
но это дает данные, как показано ниже:
list3=[1,2,3,4...'a','b'...]
использовал numpy hpstack тоже, но не работает
import pandas as pd
import pandas_profiling
import numpy as np
list3 = np.hstack([[list1],[list2]])
array([[1,2,3,4,'a','b','c'..]],dtype='<U5')
2 ответа
Решение
Вы можете использовать функцию zip, описанную в ответе на этот вопрос, чтобы создать свой вложенный список.
Обратите внимание, что вы не можете использовать функцию zip напрямую, так как это может привести к ошибке.
Решение будет:
import pandas as pd
list1 = [1,2,3]
list2 = ['a','b','c']
df = pd.DataFrame(list(zip(list1,list2)), columns=['list1', 'list2'])
Вы можете сделать так:
import pandas as pd
list1 = [1,2,3,4]
list2 = ['a','b','c','d']
list3 = zip(list1, list2)
df = pd.DataFrame(list3, columns=('list1', 'list2'))
print (df)
Выход:
list1 list2
0 1 a
1 2 b
2 3 c
3 4 d