Python 为什么我';m无法在数据帧中对列进行四舍五入

Python 为什么我';m无法在数据帧中对列进行四舍五入,python,database,pandas,rounding,Python,Database,Pandas,Rounding,我试图在我的数据框中对一列进行取整。问题是,我得到的数字排序,但与小数 我尝试了不同的选择: df['DataFrame column'].apply(np.ceil) df['DataFrame column'].四舍五入(小数=所需的小数位数) 我的代码示例: df = df.sort_values(by = ['SCORE'], ascending = False) df['SCORE'].apply(np.ceil) df “得分”列中的预期结果应为例如从100.000000到1

我试图在我的数据框中对一列进行取整。问题是,我得到的数字排序,但与小数

我尝试了不同的选择:

  • df['DataFrame column'].apply(np.ceil)

  • df['DataFrame column'].四舍五入(小数=所需的小数位数)

我的代码示例:

df = df.sort_values(by = ['SCORE'], ascending = False)

df['SCORE'].apply(np.ceil)
df

“得分”列中的预期结果应为例如从
100.000000
100
96.199205
96
95.983358
96

Ex.

import pandas as pd
import numpy as np

df = pd.DataFrame({'SCORE':[100.000000,96.199205,np.nan,95.983358]})
print(df)
"""
   1. if series has NaN value, solution work for pandas 0.24+
      df['SCORE'] = np.round(df.SCORE).astype('Int64')
   https://pandas.pydata.org/pandas-docs/stable/user_guide/integer_na.html

  2. If series has not NaN value, try this
    df['SCORE'] = np.round(df.SCORE).astype(int)

"""
df['SCORE'] = np.round(df.SCORE).astype('Int64')
print(df)
O/p:

以前

        SCORE
0  100.000000
1   96.199205
2         NaN
3   95.983358
之后

使用及

Ex.

import pandas as pd
import numpy as np

df = pd.DataFrame({'SCORE':[100.000000,96.199205,np.nan,95.983358]})
print(df)
"""
   1. if series has NaN value, solution work for pandas 0.24+
      df['SCORE'] = np.round(df.SCORE).astype('Int64')
   https://pandas.pydata.org/pandas-docs/stable/user_guide/integer_na.html

  2. If series has not NaN value, try this
    df['SCORE'] = np.round(df.SCORE).astype(int)

"""
df['SCORE'] = np.round(df.SCORE).astype('Int64')
print(df)
O/p:

以前

        SCORE
0  100.000000
1   96.199205
2         NaN
3   95.983358
之后

如果您将一个数字传递给
Series.round
,就像
round(2)
,它将给您带两位小数的序列

  • round()
    以浮点形式给出结果,但不以整数形式给出结果
  • astype()
    将浮点值转换为int
如果您将一个数字传递给
Series.round
,就像
round(2)
,它将给您带两位小数的序列

  • round()
    以浮点形式给出结果,但不以整数形式给出结果
  • astype()
    将浮点值转换为int

add
.astype(int)
在结尾处,maybe?即将回答:D``df.sort_值(by='SCORE',升序=False)。apply(np.ceil)。astype(int)`检查列中的
nan
和非浮点/int?这可能会给
np.ceil
带来一个问题。添加
.astype(int)
最后可能?即将回答:D``df.sort_值(by='SCORE',升序=False)。apply(np.ceil)。astype(int)`检查列中的
nan
和非浮点/int?这可能会给
np.ceil
带来问题。这会截断,不是吗?
np.round
是矢量化的,比应用调用更好。您可以将
np.round
应用于整个系列:
np.round(df['SCORE')
而不是应用它。@ifly6我们需要检查系列是否包含
NaN
值,否则,如果序列具有
NaN
值,则会引发异常。您不能在序列中具有
NaN
int
序列。此截断不是吗?
np.round
是矢量化的,并且优于应用调用您可以将
np.round
应用于整个序列:
np.round(df['SCORE'))
而不是应用它。@如果我们需要检查序列是否包含
NaN
值,否则,如果序列具有
NaN
值,它将引发异常。您不能将
int
序列与
NaN
放在它的堆栈中!它工作得很好!正是我想要的:>)谢谢!它工作得很好!正是我想要的:>)