我是编程新手,我编写了一个使用 Python Pandas 读取和修改大型 Excel 文件的程序。在代码中,我有以下行:
df1 = df1.apply(lambda x : pd.to_numeric(x,errors='ignore'))
它可以满足我的需要,但它还会将标题下方的数据转换为 float 。有没有办法让他们转而使用 int 类型?
df1 是一个数据框,我正在尝试创建一个包含其内容的嵌套字典。
最佳答案
选项 2
将其用于现有数据框中的数字列列表:
cols = ['col1', 'col2', 'col3']
df1[cols] = df1[cols].apply(pd.to_numeric, errors='ignore', downcast='integer')
标准 astype(int)
是次优的,因为它默认不向下转换。
选项 1
正如@AntonvBR 提到的,理想情况下,如果可能的话,您希望读入系列作为向下转换的整数。那么这种单独的转换就没有必要了。
例如pd.read_excel
的dtype
参数接受字典输入:
df = pd.read_excel('file.xlsx', dtype={'Col1': np.int8})
这只有在您事先知道您的列时才有效。
关于python - DataFrame float 到整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48928947/