相关疑难解决方法(0)

如何使用列的格式字符串显示浮动的pandas DataFrame?

我想使用print()和IPython 显示具有给定格式的pandas数据帧display().例如:

df = pd.DataFrame([123.4567, 234.5678, 345.6789, 456.7890],
                  index=['foo','bar','baz','quux'],
                  columns=['cost'])
print df

         cost
foo   123.4567
bar   234.5678
baz   345.6789
quux  456.7890
Run Code Online (Sandbox Code Playgroud)

我想以某种方式强迫这种印刷

         cost
foo   $123.46
bar   $234.57
baz   $345.68
quux  $456.79
Run Code Online (Sandbox Code Playgroud)

无需修改数据本身或创建副本,只需更改其显示方式即可.

我怎样才能做到这一点?

python ipython dataframe python-2.7 pandas

135
推荐指数
8
解决办法
20万
查看次数

根据下限/上限条件,将 pandas 列值四舍五入或截断为小数点后 2 位

我有一个数据帧,需要根据以下逻辑将其专门转换为两位小数分辨率

  • if x (以超过两位小数的值表示) > math.floor(x) + 0.5

    • ...然后将该值四舍五入到小数点后两位。
  • if x(以两位以上小数位的值表示)< math.ceil(x) - 0.5

    • ...然后将该值截断为两位小数。

我遇到的主要问题是实际上看到这些新舍入/截断的值替换了数据框中的原始值。

示例数据框:

import math
import pandas as pd  

test_df = pd.DataFrame({'weights': ['25.2524%', '25.7578%', '35.5012%', '13.5000%', 
    "50.8782%", "10.2830%", "5.5050%", "30.5555%", "20.7550%"]})

# .. which creates:

   | weights |
|0 | 25.2524%|
|1 | 25.7578%|
|2 | 35.5012%|
|3 | 13.5000%|
|4 | 50.8782%|
|5 | 10.2830%|
|6 |  5.5050%|
|7 | 30.5555%|
|8 | 20.7550%|
Run Code Online (Sandbox Code Playgroud)

定义截断函数,以及配置小数分辨率的函数:

def truncate_decimals(target_allocation, two_decimal_places) -> float:
    decimal_exponent = 10.0 …
Run Code Online (Sandbox Code Playgroud)

python truncate rounding floor pandas

3
推荐指数
1
解决办法
2万
查看次数

标签 统计

pandas ×2

python ×2

dataframe ×1

floor ×1

ipython ×1

python-2.7 ×1

rounding ×1

truncate ×1