gpt4 book ai didi

Pandas:按四舍五入的 float 分组

转载 作者:行者123 更新时间:2023-12-04 04:16:32 28 4
gpt4 key购买 nike

我有一个带有浮点数列的数据框。例如:

df = pd.DataFrame({'A' : np.random.randn(100), 'B': np.random.randn(100)})

我想要做的是在将 A 列四舍五入到 2 个小数位后按 A 列分组。

我这样做的方式非常低效:
df.groupby(df.A.map(lambda x: "%.2f" % x))

我特别不想将所有内容都转换为字符串,因为速度成为一个大问题。但我认为执行以下操作并不安全:
df.groupby(np.around(df.A, 2))

我不确定,但我觉得可能存在这样的情况,即两个 float64 数字在四舍五入到 2 个小数位后将具有相同的字符串表示,但当 np.around 到 2 个小数位时,表示可能略有不同。例如,1.52 的字符串表示是否可以由 np.around(., 2) 表示为 1.52000001 有时但 1.51999999 有时?

我的问题是什么是更好、更有效的方法。

最佳答案

我认为您不需要将浮点数转换为字符串。

import pandas as pd
from random import random
df = pd.DataFrame({'A' : map(lambda x: random(), range(100000)), 'B': map(lambda x: random(), range(100000))})
df.groupby(df['A'].apply(lambda x: round(x, 1))).count()

关于Pandas:按四舍五入的 float 分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34683963/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com