将小数设置为列中的百分比格式小数、百分比、设置为、格式

2023-09-04 01:50:28 作者:心事死在风中

假设我有以下 pandas DataFrame:

df = pd.DataFrame({'name': ['Johnny', 'Brad'], 'rating': [1.0, 0.9]})
我希望将rating列从小数转换为字符串百分比(例如1.0'100%')。以下各项工作正常:

def decimal_to_percent_string(row):
    return '{}%'.format(row['rating'] * 100)

df['rating'] = df.apply(func=decimal_to_percent_string, axis=1)

在我看来,这似乎非常低效,因为它将函数应用于整个DataFrame,这并不理想,因为我的DataFrame非常大。有没有更好的方法来做到这一点?

推荐答案

如何设置数字格式 百分比的小数位数 三

使用 pandas 直播操作:

df.rating = (df.rating * 100).astype(str) + '%'
df 
     name  rating
0  Johnny  100.0%
1    Brad   90.0%

或者,使用df.muldf.add

df.rating = df.rating.mul(100).astype(str).add('%')
df
     name  rating
0  Johnny  100.0%
1    Brad   90.0%