如题,代码如下
import os
import pandas as pd
from utlis import detect_excel
exce_list = detect_excel('test',2,2)
#这个是自己写的数据预处理,得到的是包含名称和dataframe组成的列表
for name,excel in exce_list:
print(excel)
'''
2 2.5 3 4 ... 6 8 10 12
4 11.0 11.0 9.0 NaN ... NaN NaN NaN NaN
5 10.5 10.5 8.8 NaN ... NaN NaN NaN NaN
6 10.5 10.5 8.9 12.5 ... NaN NaN NaN NaN
8 10.5 10.5 10.3 13.5 ... 25.8 NaN NaN NaN
10 11.0 11.0 11.0 15.0 ... 25.8 61.50 NaN NaN
12 11.5 11.5 11.5 16.0 ... 27.7 61.50 NaN NaN
2 float64
2.5 float64
3 float64
4 float64
5 float64
6 float64
8 float64
10 float64
12 float64
dtype: object
'''
output = excel.astype('int32',errors ='ignore',copy = False)
'''
4 11.0 11.0 9.0 NaN ... NaN NaN NaN NaN
5 10.5 10.5 8.8 NaN ... NaN NaN NaN NaN
6 10.5 10.5 8.9 12.5 ... NaN NaN NaN NaN
8 10.5 10.5 10.3 13.5 ... 25.8 NaN NaN NaN
10 11.0 11.0 11.0 15.0 ... 25.8 61.50 NaN NaN
12 11.5 11.5 11.5 16.0 ... 27.7 61.50 NaN NaN
'''
该回答内容部分引用GPT,GPT_Pro更好的解决问题
Pandas数据使用astype无效是指将数据类型强制转换为指定类型后,却发现数据仍然保持原有类型,这是因为Pandas中有一个叫做dtype的参数,它能够控制一列中所有值的数据类型,当我们使用astype()方法强制转换为某一类型时,实际上是将dtype参数的值改变了,但是若该列中存在不能转换的元素,则dtype会自动变成object,此时即使使用astype()也无法强制转换成功。
另外,还有一种情况也会导致astype()失效,就是在读取Excel文件时没有正确检测出文件中的数据类型,导致我们无法正确转换。
因此,在使用Pandas处理数据时,如果遇到astype()失效的情况,首先需要确定是否存在不能转换的元素;其次要注意在读取Excel文件时是否正确检测出文件中的数据类型;最后可以尝试使用Pandas中的apply方法来将所有值逐个转换成相应的数据类型。
如果回答有帮助,望采纳。