我想要围绕pandas.DataFrame
。
这是我到目前为止所尝试的内容:
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
的正确方法是什么?
答案 0 :(得分:14)
首先,您可能想要更改数据框的定义,例如:
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)
答案 1 :(得分:4)
由于pandas 0.17.0你可以使用
DataFrame.round(decimals=0, *args, **kwargs)
如果要将数据舍入为2位小数,请执行以下操作:
data.round(2)
更多信息: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.round.html