Панды: как изменить тип данных значений строки? - PullRequest
0 голосов
/ 14 января 2019

У меня есть следующий DataFrame:

actor          Daily Total   actor1  actor2
Day
2019-01-01     25            10       15
2019-01-02     30            15       15
Avg            27.5          12.5     15.0

Как изменить тип данных строки 'Avg' на целое число? Как мне округлить эти значения в строке?

Ответы [ 2 ]

0 голосов
/ 14 января 2019

В пандах после добавления новой строки, заполненной поплавками, все столбцы изменяются на float s.

Возможное решение: round и преобразовать все столбцы:

df = df.round().astype(int)

Или добавить новый Series, преобразованный в integer:

df = df.append(df.mean().rename('Avg').round().astype(int))
print (df)
            Daily Total  actor1  actor2
actor                                  
2019-01-01           25      10      15
2019-01-02           30      15      15
Avg                  28      12      15

Если хотите преобразовать только столбцы со значениями строк, заполненными целыми числами:

d = dict.fromkeys(df.columns[df.loc['Avg'] == df.loc['Avg'].astype(int)], 'int')
df = df.astype(d)
print (df)
            Daily Total  actor1  actor2
actor                                  
2019-01-01         25.0    10.0      15
2019-01-02         30.0    15.0      15
Avg                27.5    12.5      15
0 голосов
/ 14 января 2019

Используйте loc для доступа к индексу, затем используйте numpy.round в apply.

import numpy as np

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