熊猫:如何更改行值的数据类型?

时间:2019-01-14 10:13:49

标签: python pandas dataframe

我有以下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

如何将“平均”行的数据类型更改为整数?如何在行中舍入这些值?

2 个答案:

答案 0 :(得分:3)

在熊猫中,添加由浮点数填充的新行后,所有列均更改为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

答案 1 :(得分:1)

使用loc访问索引,然后使用numpy.round中的apply

import numpy as np

df.loc['Avg'] = df.loc['Avg'].apply(np.round)