熊猫数据帧格式浮动

问题描述 投票:1回答:3

我有说我要聚集平均分数和输出到HTML调查反应的熊猫数据帧。我当前的代码如下所示:

import pandas as pd
import numpy as np

df = pd.read_csv('survey_scores.csv', header=0)
np.round(pd.DataFrame(df.groupby('question_number').aggregate('mean').score).transpose(), 2).to_html()

它需要一个数据帧,看起来还挺像这样的csv ...

response_number, question_number, score
1, 1, 3.0
1, 2, 4.0
1, 3, 4.0
2, 1, 4.0
2, 2, 4.0
2, 3, 1.0

它输出的平均分数到格式化这样的得分值的HTML表:

3.5, 4, 2.5

不过,我试图让输出迫使每个数字的小数点后显示两位数字。我把它四舍五入到两位小数点,但我没法把我的输出格式化这样的价值观:

3.50, 4.00, 2.50

我怎样才能得到这些值格式化到小数点后两位?

python python-2.7 numpy pandas formatting
3个回答
3
投票

我已经解决了这个问题。 pandas.DataFrame.to_html()可以格式化浮动。

import pandas as pd
import numpy as np

df = pd.read_csv('survey_scores.csv', header=0)
np.round(pd.DataFrame(df.groupby('question_number').aggregate('mean').score).transpose(), 2).to_html(float_format=lambda x: '%.2f' % x)

1
投票
df.groupby('question_number').aggregate('mean').score.transpose()\
.apply(lambda x: '{0:.2f}'.format(x))

Out[422]: 
question_number
1                  3.50
2                  4.00
3                  2.50
Name: score, dtype: object

0
投票

假设你已经float值,其格式为2位。

>>> print("%.2f" % 2.5)
2.50
© www.soinside.com 2019 - 2024. All rights reserved.