当前位置: 首页 > 知识库问答 >
问题:

将某些浮动数据帧列格式化为熊猫的百分比

牟飞沉
2023-03-14

我试图在IPython笔记本上写一篇论文,但在显示格式方面遇到了一些问题。假设我有以下数据帧df,是否有方法将var1var2格式化为2位小数,将var3格式化为百分比。

       var1        var2         var3    
id                                              
0    1.458315    1.500092   -0.005709   
1    1.576704    1.608445   -0.005122    
2    1.629253    1.652577   -0.004754    
3    1.669331    1.685456   -0.003525   
4    1.705139    1.712096   -0.003134   
5    1.740447    1.741961   -0.001223   
6    1.775980    1.770801   -0.001723    
7    1.812037    1.799327   -0.002013    
8    1.853130    1.822982   -0.001396    
9    1.943985    1.868401    0.005732

里面的数字不乘以100,例如-0.0057=-0.57%。

共有3个答案

邢财
2023-03-14

使用圆形函数替换值,并格式化百分比数字的字符串表示形式:

df['var2'] = pd.Series([round(val, 2) for val in df['var2']], index = df.index)
df['var3'] = pd.Series(["{0:.2f}%".format(val * 100) for val in df['var3']], index = df.index)

圆形函数将浮点数四舍五入到作为函数第二个参数提供的小数位数。

字符串格式允许您按照自己的意愿表示数字。您可以通过更改f前的数字来更改显示的小数位数。

p、 我不确定你的“百分比”数字是否已经乘以100。如果他们已经很清楚,那么您将想要更改显示的小数位数,并删除百乘运算。

伯君浩
2023-03-14

您还可以为float设置默认格式:

pd.options.display.float_format = '{:.2%}'.format

使用“{.2%}”而不是“{.2f}%”-前者将0.41转换为41.00%(正确),后者将0.41%(错误)

许亦
2023-03-14

公认的答案建议修改原始数据以用于演示目的,这是您通常不希望看到的。假设您需要对这些列进行进一步的分析,并且需要舍入时丢失的精度。

在您的情况下,可以修改数据框中各个列的格式:

output = df.to_string(formatters={
    'var1': '{:,.2f}'.format,
    'var2': '{:,.2f}'.format,
    'var3': '{:,.2%}'.format
})
print(output)

请参考“{:,.2%}”。格式(0.214)产生21.40%,因此不需要乘以100。

你不再有一个漂亮的HTML表,而是一个文本表示。如果您需要继续使用HTML,请使用to_HTML函数。

from IPython.core.display import display, HTML
output = df.to_html(formatters={
    'var1': '{:,.2f}'.format,
    'var2': '{:,.2f}'.format,
    'var3': '{:,.2%}'.format
})
display(HTML(output))

使现代化

从0.17开始。1、生活变得更轻松,我们可以立即获得一个漂亮的html表格:

df.style.format({
    'var1': '{:,.2f}'.format,
    'var2': '{:,.2f}'.format,
    'var3': '{:,.2%}'.format,
})
 类似资料:
  • 问题内容: 我正在尝试在IPython笔记本中写论文,但是在显示格式方面遇到了一些问题。说我有以下dataframe ,有什么方法可以格式化并转换为2位小数并转换为百分比。 内部数字不乘以100,例如-0.0057 = -0.57%。 问题答案: 使用round函数替换值,并格式化百分比数字的字符串表示形式: 舍入函数将浮点数舍入为该函数的第二个参数提供的小数位数。 字符串格式可让您根据需要表示数

  • 我有一个大熊猫时间帧,它有一个列,这个时间格式:例如(小时,分钟,秒)。这些值是通过熊猫从我的SQL数据库中提取的,具有以下查询函数 我想将这些时间值转换为分钟(或秒),因为我想对作为我的持续时间变量的值执行线性回归。我该怎么做呢?是否有一种方法可以将这些值(例如,将<code>14:30:00 示例数据帧:

  • 我对熊猫有些陌生。我有一个熊猫数据框,是一行23列。 我想把它转换成一个系列?我想知道做这件事最像蟒蛇的方式是什么? 我试过pd。系列(我的结果),但它抱怨。它还没有聪明到意识到它仍然是数学术语中的“向量”。 谢谢!

  • 假设熊猫数据帧如下所示: 如何将第三行(如row3)提取为pd数据帧?换句话说,row3.shape应该是(1,5),row3.head()应该是:

  • 我正试图在模式下将写入文件格式(在最新的pandas版本0.21.0中引入)。但是,文件将被新数据覆盖,而不是附加到现有文件。我错过了什么? 写入语法是 读取语法是

  • 我有一个这样的字典列表: 我想把它变成一个熊猫,如下所示: 注意:列的顺序并不重要。 如何将字典列表转换为如上所示的数据帧?