Преобразование списка поплавков в несколько столбцов поплавков в пандах - PullRequest
0 голосов
/ 31 августа 2018

У меня есть в pandas столбец, который содержит список 1000 float. Но вместо того, чтобы иметь один столбец со списком, я хотел бы иметь 1000 столбцов одного float. Прямо сейчас эти списки хранятся с типом string.

Пример списка (обрезано):

[0.12953150272369385, 0.16092558205127716, -0.03718775138258934]

Я знаю, что это можно сделать, перебирая строки и создавая 1000 столбцов и передавая новые значения одно за другим. Но это было бы медленно.

Есть ли более быстрый способ сделать это?

Ответы [ 3 ]

0 голосов
/ 31 августа 2018

Если у вас есть несколько строк, и у каждой строки есть список с плавающей точкой, то лучшим решением будет:

df = pd.DataFrame({'floats': [[0.6, 0.3], [0.3, 0.4]]})
    floats
0   [0.6, 0.3]
1   [0.3, 0.4]

df = df.floats.apply(pd.Series)
    0   1
0   0.6 0.3
1   0.3 0.4
0 голосов
/ 31 августа 2018

Этого можно добиться с помощью T , который транспонирует индекс и столбцы:

l = [0.12953150272369385, 0.16092558205127716, -0.03718775138258934]

df = pd.DataFrame(l)
df
#          0
#0  0.129532
#1  0.160926
#2 -0.037188
df.T
#          0         1         2
#0  0.129532  0.160926 -0.037188
0 голосов
/ 31 августа 2018

Поставьте его в скобки, чтобы получить список из списка:

l = [0.12953150272369385, 0.16092558205127716, -0.03718775138258934]

pd.DataFrame(l)
Out: 
          0
0  0.129532
1  0.160926
2 -0.037188

pd.DataFrame([l])
Out: 
          0         1         2
0  0.129532  0.160926 -0.037188
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...