繁体   English   中英

如何在pd.read_excel中通过索引而不是名称指定列dtype

[英]How to specify a columns dtype by its index rather than its name in pandas pd.read_excel

我需要从 Excel 读取数据,但在执行此操作时,我不应按列的名称指定列。 如何使用索引设置数据类型?

例如:

df = pd.read_excel('file.xlsx', 
                 sheet_name='sheet1',
                 index_col=None, 
                 dtype={'column_x':str, 'column_y':str}, engine='openpyxl')

在这里,我可以使用以下内容而不是说明"column_x""column_y"来联系它们:

dtype={df.colums[0]:str, df.colums[1]:str}

谢谢

使用header=None然后通过它们的索引位置访问列。

df = pd.DataFrame({'A' : [0,1,2,3], 'B' : ['A','B','C','A']})

print(df.dtypes)

A     int64
B    object
dtype: object


df.to_excel('file.xlsx'index=False)
df = pd.read_excel('file.xlsx',index_col=None)
print(df.dtypes)

A     int64
B    object
dtype: object

df = pd.read_excel('file.xlsx',index_col=None,
       header=None,dtype={0 : 'str', 1 : 'str'},skiprows=1) 
       # skip the header row otherwise all cols will be read as strings.

print(df.dtypes)

0    object
1    object
dtype: object

请注意,此后您需要手动设置列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM