熊猫:将数据框中的某些数字转换为整数

时间:2020-07-16 06:14:49

标签: python excel pandas csv openpyxl

我需要合并包含文本和数字的多个CSV,并创建一个Excel工作簿,每个CSV都形成一个单独的工作表。尽管不是严格意义上的数据框,但我还是决定使用Pandas库,因为它提供了许多用于从CSV和xls文件读取和写入的有用功能。

我正在使用以下代码行创建writer对象:

writer = pd.ExcelWriter(filename, engine='openpyxl', mode='a')

现在,当我在单个CSV文件上执行read_csv时,它将所有内容读取为一个字符串,甚至将数字存储为字符串,这使处理此合并的xlsx的TCL脚本混乱了。

df = pd.read_csv(file, header=None, skip_blank_lines=False)

在执行to_excel之前是否可以将这些数字转换为int?

这里的目的是简单地将所有CSV合并到excel工作簿中,而无需修改任何数据。

注意:我知道xlsxwriter引擎支持将字符串转换为数字,但是我不能使用xlsxwriter,因为它不支持编辑现有工作簿。

我尝试这样做,但这无济于事:

 for col in df:
    df[col] = pd.to_numeric(df[col],errors='ignore') 

编辑:最终,我只是忍受了这个问题并在后期处理中进行了处理。截至2020年7月,所有建议都没有奏效。

1 个答案:

答案 0 :(得分:0)

让我改一下:

如果您指定的列包含数字值,则应该更好(因为它可以是数字或无)。

df.col = pd.to_numeric(df.col)

如果您希望整个DataFrame查找数字,请尝试

df.col= df.col[df.col.str.isnumeric()].astype('int', errors = 'ignore')