Joh*_*etz 3 python format series pandas
假设我有以下 Pandas DataFrame:
df = pd.DataFrame({'name': ['Johnny', 'Brad'], 'rating': [1.0, 0.9]})
Run Code Online (Sandbox Code Playgroud)
我想将rating列从小数转换为字符串形式的百分比(例如1.0to '100%')。以下工作正常:
def decimal_to_percent_string(row):
return '{}%'.format(row['rating'] * 100)
df['rating'] = df.apply(func=decimal_to_percent_string, axis=1)
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎非常低效,因为它将函数应用于整个 DataFrame 这并不理想,因为我的 DataFrame 非常大。有一个更好的方法吗?
使用 pandas 的广播操作:
df.rating = (df.rating * 100).astype(str) + '%'
df
name rating
0 Johnny 100.0%
1 Brad 90.0%
Run Code Online (Sandbox Code Playgroud)
或者,使用df.mul和df.add:
df.rating = df.rating.mul(100).astype(str).add('%')
df
name rating
0 Johnny 100.0%
1 Brad 90.0%
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11248 次 |
| 最近记录: |