Менять типы в пандах DataFrame со специальным назначением? - PullRequest
0 голосов
/ 23 октября 2018

У меня есть DataFrame с типом float

 Number
      2
    3.1
    4.3

Я хочу изменить его в список:

 Number
    [2]
  [3.1]
  [4.3]

Это можно легко сделать как list(str(x)).Однако из-за моей особой цели использования, когда я выбираю элемент списка для каждой строки, такой как type(df.Number[0][0]), он должен быть плавающим, а не строковым (без использования кода для преобразования обратно в тип с плавающей точкой)

Ответы [ 3 ]

0 голосов
/ 23 октября 2018

Вы можете использовать list comprehension:

df['a'] = [[x] for x in df['a']]
print (df)
        a
0  [-1.0]
1   [0.5]
2   [5.0]
0 голосов
/ 24 октября 2018

Если вы непреклонны , вам это нужно, извлеките список из NumPy напрямую через np.ndarray.tolist:

df['Number'] = df['Number'].values[:, None].tolist()

print(df)

  Number
0  [2.0]
1  [3.1]
2  [4.3]
0 голосов
/ 23 октября 2018

Я не уверен, почему вы это сделали, но вот как вы можете получить то, что вы хотите:

import numpy as np
import pandas as pd

data = [2,3.1,4.3]
df = pd.DataFrame(data, columns=['number'])

df['number'] = df['number'].apply(lambda x:np.array([x,]).tolist())

print(df['number'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...