Python .Round()方法不适用于我的数据帧
我使用从excel导入的数据创建了一个dataframe df1,如下所示,我希望将列从“Unnamed 26”到“Unnamed 34”四舍五入到小数点后3位 输入:df1Python .Round()方法不适用于我的数据帧,python,pandas,Python,Pandas,我使用从excel导入的数据创建了一个dataframe df1,如下所示,我希望将列从“Unnamed 26”到“Unnamed 34”四舍五入到小数点后3位 输入:df1 Curve 7 Unnamed: 26 Unnamed: 27 Unnamed: 30 Unnamed: 31 Unnamed: 34 126 2424.53 -0.000416507 0.000547765 0.00123807 0.000496849 0.000611638 127
Curve 7 Unnamed: 26 Unnamed: 27 Unnamed: 30 Unnamed: 31 Unnamed: 34
126 2424.53 -0.000416507 0.000547765 0.00123807 0.000496849 0.000611638
127 2414.78 -0.000524779 0.000573377 0.00144546 0.000465293 0.000653559
128 2400.96 -0.000522968 0.000775356 0.00192514 0.000654915 0.000874891
129 2385.15 -0.000660529 0.000800742 0.00254473 0.000915885 0.00121266
130 2369.16 -0.000633806 0.000877753 0.00292714 0.00121839 0.00156733
.. ... ... ... ... ... ...
230 863.956 0.00732472 -0.000931889 0.0248365 0.000417123 0.0198425
231 849.027 0.00743242 -0.000944736 0.0255833 0.000450288 0.0204515
232 833.801 0.00761184 -0.000993092 0.0265546 0.000394343 0.0211056
233 818.99 0.00778416 -0.000939103 0.0275128 0.000466737 0.0216808
234 804.799 0.00780258 -0.000769448 0.0278843 0.000755645 0.0217333
df1.info()
范围索引:109个条目,126到234
数据列(共7列):
#列非空计数数据类型
--- ------ -------------- -----
0曲线7 109非空对象
1未命名:26 109非空对象
2未命名:27 109非空对象
3未命名:30 109非空对象
4未命名:31 109非空对象
5未命名:34 109非空对象
6未命名:35 109非空对象
数据类型:对象(7)
内存使用率:6.1+KB
尝试1:
df2=df1.圆形(3)
输出:
df2与df1保持相同
尝试2:特别调用要通过
list=['Unnamed:26'、'Unnamed:27'、'Unnamed:30'、'Unnamed:31'、'Unnamed:34'、'Unnamed:35']
df2=pd.DataFrame(df1,columns=list)
输出:
df2与df1保持相同
不确定还可以尝试什么…?我的直接想法是,舍入法需要两个输入(数字、小数位数)。
也许可以尝试df=df.apply(lambda x:round(x,3))`。如果愿意,还可以对某些列应用不同的轮 我用这个例子进行了测试,结果很有效:
import pandas as pd
#Answering Round question
Curve = [2424.53,1000.467,3000.1234,100.1]
Unnamed_26 = [-.0004567658,-.0005672443,-.00065732114,-.00078695]
Unnamed_27 = [.0012346,.00587261,.00455632,.66778899]
D = {'Curve': Curve,'Unnamed: 26':Unnamed_26,'Unnamed: 27':Unnamed_27}
df = pd.DataFrame(D)
df = df.apply(lambda x: round(x, 3))
df
我在我的环境中运行了你的代码。它正确地四舍五入到三位数。用
df.info()
检查数据类型。我已经更新了我的原始帖子。此信息表明dataframe具有非空条目,因此应该工作吗?我将看一下@Clinton Sorrel的帖子,因为数据类型必须是“float”,所以应该使用df.astype(float)
进行转换。这正是问题所在。非常感谢你的帮助。
import pandas as pd
#Answering Round question
Curve = [2424.53,1000.467,3000.1234,100.1]
Unnamed_26 = [-.0004567658,-.0005672443,-.00065732114,-.00078695]
Unnamed_27 = [.0012346,.00587261,.00455632,.66778899]
D = {'Curve': Curve,'Unnamed: 26':Unnamed_26,'Unnamed: 27':Unnamed_27}
df = pd.DataFrame(D)
df = df.apply(lambda x: round(x, 3))
df