Преобразуйте список кортежей в dataframe и перенесите его в python - PullRequest
0 голосов
/ 02 ноября 2018

Я хочу преобразовать список кортежей в кадр данных панд, как указано ниже. Я хочу преобразовать кортеж в pandas dataframe и транспонировать его.

data = {'Document_No':[0.0,1.0,2.0,3.0,4.0], 'list_of_topics':[[(0, 0.039169993), (1, 0.023344912)],[(0, 0.17865846), (1, 0.01093025)],[(0, 0.039170124), (1, 0.023344917)],  [(0, 0.17865846), (1, 0.01093025)], [(0, 0.039170124), (1, 0.023344917)]]}
df = pd.DataFrame(data=data)

   Document_No            list_of_topics
0  0.0                [(0, 0.039169993), (1, 0.023344912)]
1  1.0                [(0, 0.17865846), (1, 0.01093025)]
2  2.0                 [(0, 0.039170124), (1, 0.023344917)]
3  3.0                [(0, 0.17865846), (1, 0.01093025)]
4  4.0                 [(0, 0.039170124), (1, 0.023344917)]


data = {'0':[0.039169993,0.023344912], '1':[0.17865846,0.01093025],'2':[0.039170124,0.023344917], '3':[0.17865846,0.01093025],'4':[0.039170124,0.023344917]}
desired_result= pd.DataFrame(data)


         0.0            1.0          2.0        3.0          4.0
0  0.039169993   0.17865846  0.039170124   0.17865846  0.039170124
1  0.023344912   0.01093025  0.023344917   0.01093025  0.023344917

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

Аналогично @ rahlf23, без понимания списка, работает путем преобразования list_of_topics в структуру словаря:

>>> pd.DataFrame(list(map(dict,df.list_of_topics.tolist())),index=data['Document_No']).T
        0.0       1.0       2.0       3.0       4.0
0  0.039170  0.178658  0.039170  0.178658  0.039170
1  0.023345  0.010930  0.023345  0.010930  0.023345
0 голосов
/ 02 ноября 2018

Вы можете выполнить небольшую предварительную обработку, используя понимание списка, а затем передать это конструктору DataFrame:

df = pd.DataFrame([[j[1] for j in i] for i in data['list_of_topics']], index=data['Document_No']).transpose()

Урожайность:

        0.0       1.0       2.0       3.0       4.0
0  0.039170  0.178658  0.039170  0.178658  0.039170
1  0.023345  0.010930  0.023345  0.010930  0.023345
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...