如何使用Pandas从Excel中将“08E55”读取为字符串

2024-06-28 11:12:29 发布

您现在位置:Python中文网/ 问答频道 /正文

在excel中,我在一列中的值为“08E55”。该值是产品ID,应按原样读取。 通过pandas读取excel时,将其转换为“8e+55”。 我怎样才能避免这种情况

很少有记录包含这样的值- U8716 U8715 8725 U8716 U8721 08E55

我尝试过以下事情-

xls=pd.ExcelFile(“New.xlsx”)

sheet=xls.parse(“Sheet1”,数据类型={'col':'str'},convert\u float=False)

重现问题的步骤-

创建一个新的Excel文件并添加一条记录08E55,而不更改Excel中的任何数据类型,并尝试读取Pandas中的值

预期产量-08E55

电流输出-8e+55或8.000000 E+55


Tags: idpandas产品记录情况xls事情excel
2条回答
import pandas as pd
pd.read_excel('New.xlsx', engine='openpyxl', dtype={'col':str})

非常简单,只需在读取excel文件时使用converters参数

pd.read_excel('New.xlsx', converters={'column_name':str})

编辑1:

pd.read_excel('New.xlsx', converters={'column_name':str}, convert_float=False)

编辑2:

pd.read_excel('new.xlsx', convert_float=False, dtype='str')

编辑3:

df = pd.read_excel('new.xlsx', convert_float=False, dtype='str')

for val in df.itertuples():
    if '+' in df.at[val[0], 'prod_no'] or 'e' in df.at[val[0], 'prod_no'] or 'E' in df.at[val[0], 'prod_no']:
        df.at[val[0], 'prod_no'] = '0'+df.at[val[0], 'prod_no'].replace('e+', 'E')
    
    else:
        continue

print(df)

输出:

  prod_no
0   08E55

相关问题 更多 >