如何编辑多个 Pandas DataFrame 浮点列的字符串格式?
Posted
技术标签:
【中文标题】如何编辑多个 Pandas DataFrame 浮点列的字符串格式?【英文标题】:How do I edit the string format of several Pandas DataFrame float columns? 【发布时间】:2021-12-04 11:47:16 【问题描述】:我有一个 pd.DataFrame
的花车:
import numpy as np
import pandas as pd
pd.DataFrame(np.random.rand(5, 5))
0 1 2 3 4
0 0.795329 0.125540 0.035918 0.645191 0.819097
1 0.755365 0.333681 0.466814 0.892638 0.610947
2 0.545204 0.313946 0.538049 0.237857 0.365573
3 0.026813 0.867013 0.843798 0.923359 0.464778
4 0.514968 0.201144 0.853341 0.951981 0.214948
我正在尝试将它们全部格式化为百分比:
0 1 2 3 4
0 "25.60%" "11.55%" "98.62%" "73.16%" "38.85%"
1 "26.01%" "28.57%" "65.21%" "32.55%" "93.45%"
2 "19.99%" "41.97%" "57.21%" "61.26%" "83.34%"
3 "41.54%" "71.02%" "52.93%" "42.78%" "49.77%"
4 "33.77%" "70.48%" "36.64%" "97.42%" "83.19%"
或
0 1 2 3 4
0 25.60% 11.55% 98.62% 73.16% 38.85%
1 26.01% 8.57% 65.21% 32.55% 93.45%
2 19.99% 41.97% 57.21% 61.26% 83.34%
3 41.54% 1.02% 52.93% 42.78% 49.77%
4 33.77% 70.48% 36.64% 97.42% 83.19%
存在许多解决方案,但针对单个列,例如 here。我正在尝试编辑值,所以我对更改浮动显示格式不感兴趣。
我该如何继续?
【问题讨论】:
什么的百分比? 0.795329 如何变成 25.60% 那些是随机数 【参考方案1】:试试这个:
df = df.applymap(':,.2%'.format)
【讨论】:
AttributeError: 'DataFrame' object has no attribute 'map'.
我不知道.applymap()
存在【参考方案2】:
或np.vectorize
:
df[:] = np.vectorize(':,.2%'.format)(df)
【讨论】:
【参考方案3】:如果您想将数字数据显示为百分比,同时保持基础数据为数字而不是字符串,那么您可以使用数据框样式: https://***.com/a/55624414
【讨论】:
以上是关于如何编辑多个 Pandas DataFrame 浮点列的字符串格式?的主要内容,如果未能解决你的问题,请参考以下文章
pandas创建内容全是0的dataframepandas基于随机整数随机浮点数创建dataframe(random numbers)
pandas multiindex DataFrame中的圆形浮点数
使用字符串和浮点数字典的 Pandas DataFrame 分配错误?