圆Pandas的正确方法,数据框?

8ulbf1ek  于 2023-01-19  发布在  其他
关注(0)|答案(3)|浏览(125)

我要圆的。
以下是我迄今为止尝试过的方法:

import pandas as pd
data = pd.DataFrame([1.4,2.5,3.8,4.4,5.6],[6.2,7.6,8.8,9.1,0])
print(round(data))

但是当我运行这段代码时,我得到了下面的错误:

Traceback (most recent call last):
  File "C:\Users\*****\Documents\*****\******\****.py", line 3, in <module>
    print(round(data))
TypeError: type DataFrame doesn't define __round__ method

舍入pandas.DataFrame的正确方法是什么?

vpfxa7rd

vpfxa7rd1#

首先,您可能需要更改数据框的定义,例如:

data = pd.DataFrame([[1.4,2.5,3.8,4.4,5.6],[6.2,7.6,8.8,9.1,0]]).T

其结果是:

0    1
0  1.4  6.2
1  2.5  7.6
2  3.8  8.8
3  4.4  9.1
4  5.6  0.0

或:

data = pd.DataFrame({'A':[1.4,2.5,3.8,4.4,5.6],'B':[6.2,7.6,8.8,9.1,0]})

这样你就得到了两列,否则另一个列表会被当作索引然后:

data.apply(pd.Series.round)

import numpy as np
data.apply(np.round)
aydmsdu9

aydmsdu92#

因为Pandas0.17.0你可以使用

DataFrame.round(decimals=0, *args, **kwargs)

如果要将数据四舍五入到2位小数,请执行以下操作:

data.round(2)

更多信息:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.round.html

8ehkhllq

8ehkhllq3#

对于那些来到这里,但实际上并不想舍入值的人,只是在显示时,使用printoption,正如我在其他答案here中解释的那样

pd.set_option('display.precision', 3)

# or

from IPython.display import display

with pd.option_context('display.precision', 3):
    display(pd.DataFrame(data={'x':[1,2,3],
                               'y':[4,5,6]}))

相关问题