我试图在IPython笔记本上写一篇论文,但在显示格式方面遇到了一些问题。假设我有以下数据帧df
,是否有方法将var1
和var2
格式化为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%。
使用圆形函数替换值,并格式化百分比数字的字符串表示形式:
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。如果他们已经很清楚,那么您将想要更改显示的小数位数,并删除百乘运算。
您还可以为float设置默认格式:
pd.options.display.float_format = '{:.2%}'.format
使用“{.2%}”而不是“{.2f}%”-前者将0.41转换为41.00%(正确),后者将0.41%(错误)
公认的答案建议修改原始数据以用于演示目的,这是您通常不希望看到的。假设您需要对这些列进行进一步的分析,并且需要舍入时丢失的精度。
在您的情况下,可以修改数据框中各个列的格式:
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中引入)。但是,文件将被新数据覆盖,而不是附加到现有文件。我错过了什么? 写入语法是 读取语法是
我有一个这样的字典列表: 我想把它变成一个熊猫,如下所示: 注意:列的顺序并不重要。 如何将字典列表转换为如上所示的数据帧?