gpt4 book ai didi

python - 为计算值设置数据框中的小数位数

转载 作者:行者123 更新时间:2023-12-04 00:54:43 25 4
gpt4 key购买 nike

我想在数据框中设置平均值的精度,但出现以下错误:TypeError: cannot convert the series to

我将数组设置为 dtype=float。如果我删除“%.2f”%,它会起作用,但给出的小数点比我想要的多。

代码如下:

import numpy as np
import pandas as pd
df = pd.DataFrame(np.array([[0, 0.030, 0.031, 0.032], [10, 0.153, 0.155, 0.154], [20, 0.393, 0.397, 0.395]]), columns=['Y0','Y1', 'Y2', 'Y3'], dtype=float)
Xa=df.loc[:,"Y1":]
mean=Xa.mean(axis=1)
df['mean']="%.2f"%mean
df

最佳答案

  • 在您的实现中,df['mean'] = "%.2f"%mean 导致 TypeError 因为 meanpandas.Series ,不能用 "%.2f"%mean 转换。
    • 使用 df['mean'] = mean.round(3)
    • 使用 pandas.Series.roundpandas.Series 舍入到所需的小数位,并保留 float 类型。
  • 使用 pandas.DataFrame.meanaxis=1 返回所有行的平均值,并将值分配给新列。
  • 使用 pandas.DataFrame.round 舍入整个数据帧(例如 Xa.round(3)
import pandas as pd
import numpy as np

# test dataframe
df = pd.DataFrame(np.array([[0, 0.030, 0.031, 0.032], [10, 0.153, 0.155, 0.154], [20, 0.393, 0.397, 0.395]]), columns=['Y0', 'Y1', 'Y2', 'Y3'], dtype=float)

# select the desired columns
Xa = df.loc[:,"Y1":]

# get the column means and round them
Xa['means'] = Xa.mean(axis=1).round(3)

# display(Xa)
Y1 Y2 Y3 means
0 0.030 0.031 0.032 0.031
1 0.153 0.155 0.154 0.154
2 0.393 0.397 0.395 0.395

关于python - 为计算值设置数据框中的小数位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63432724/

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