gpt4 book ai didi

python - 将 float Series 中的所有元素转换为整数

转载 作者:太空宇宙 更新时间:2023-11-03 12:32:06 24 4
gpt4 key购买 nike

我在数据框中有一列具有浮点值(因此我将此列称为浮点系列)。我想将所有值转换为整数或将其四舍五入以便没有小数。

假设数据框是 df,列是 a,我试过这个:

df['a'] = round(df['a']) 

我收到一条错误消息,指出此方法无法应用于系列,仅适用于单个值。

接下来我尝试了这个:

for obj in df['a']: 
obj =int(round(obj))

在此之后我打印了 df 但没有任何变化。我哪里错了?

最佳答案

round 不会工作,因为它是在类似于数组而不是标量值的 pandas Series 上调用的,有内置方法 pd.Series.round对整个系列数组进行操作,之后您可以使用 astype 更改 dtype :

In [43]:
df = pd.DataFrame({'a':np.random.randn(5)})
df['a'] = df['a'] * 100
df

Out[43]:
a
0 -4.489462
1 -133.556951
2 -136.397189
3 -106.993288
4 -89.820355

In [45]:
df['a'] = df['a'].round(0).astype(int)
df

Out[45]:
a
0 -4
1 -134
2 -136
3 -107
4 -90

当有可用的向量化方法时,也没有必要遍历行

还有这个:

for obj in df['a']: 
obj =int(round(obj))

不改变系列中的单个单元格,它对值的副本进行操作,这就是 df 不改变的原因。

关于python - 将 float Series 中的所有元素转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33158749/

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