Pandas读取Excel是怎样指定列的类型为字符串

问题

比如这样的一个dataframe

names   ages
bob     05
tom     4
suzy    3

如果直接读取,那么ages会是数字类型,bob的05年龄会变成5

怎样让05一直是05,保持不变,就是说是个字符串呢

解决

import pandas as pd

df = pd.read_excel(
    'Book1.xlsx',
    sheetname='Sheet1',
    header=0,
    converters={'names':str,'ages':str})
>>> df
       names ages
   0   bob   05
   1   tom   4
   2   suzy  3

答案就是这个参数:

converters={'names':str,'ages':str}

其中names和ages是excel中的列名,把他们设置成str,那么读取时就是字符串了

文章参考自:
https://stackoverflow.com/questions/32591466/python-pandas-how-to-specify-data-types-when-reading-an-excel-file

日期列处理

如果读取u的是日期列,想要做日期列的解析,则这样指定

df = pd.read_excel(xlsx, dtype={'column_name': datetime.datetime})

来自文章:
https://stackoverflow.com/questions/42958217/pandas-read-excel-datetime-converter

Leave a Comment