Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python .Round()方法不适用于我的数据帧_Python_Pandas - Fatal编程技术网

Python .Round()方法不适用于我的数据帧

Python .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

我使用从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  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