преобразовать значения ndarray в числовое значение для всего кадра данных, используя pandas - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть датафрейм df, подобный этому:

a   b
1   2
3   4

, но каждый тип данных имеет значения ndarray, например

type(df.a.values[0])
numpy.ndarray

и

df.a.values[0]
array([1])

Iхочу преобразовать весь массив данных в числовой тип, и все типы значений должны быть int или float.

Я пробовал этот код

df = df.apply(pd.to_numeric)

Но этот код не работает, как с этим бороться?

Но когда я сохраняю этот файл локально с помощью to_csv и читаю с использованием read_csv, он автоматически конвертируется.Но как конвертировать на лету?

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

Если все ваши ячейки содержат только одно значение, вы можете использовать

df.a.apply(lambda a: a[0])

, чтобы получить значение из массива, содержащегося в ячейках.

Возможно, стоит пересмотреть преобразованиеиз ваших данных в фрейм данных, чтобы по возможности избавиться от этих нулевых массивов.

0 голосов
/ 14 декабря 2018

Вы можете изменить тип на numpy int или float, используя

df.astype(np.float64)

, после преобразования вы получите

dtype: float64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...