首页 > 解决方案 > Pandas:如何更改一行值的数据类型?

问题描述

我有以下数据框:

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

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

标签: pythonpandasdataframe

解决方案


在熊猫中,添加由浮点数填充的新行后,所有列都更改为floats。

可能的解决方案是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

推荐阅读