我有以下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
如何将“平均”行的数据类型更改为整数?如何在行中舍入这些值?
答案 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)