更改数据帧列中的值类型

2024-04-18 20:47:35 发布

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

    df = pd.read_csv('alimenti.csv', delimiter=';')
    df.apply(pd.to_numeric, errors='ignore')
    print(df.dtypes)

我想更改数字中所有列的值,但apply函数('to numeric')在dataframe上不起作用。下面是打印类型的输出。除了前两列(descripione、famiglia),其余所有值都应该是浮点值(或最终是整数)

    descrizione          object
    famiglia             object
    parte edibile         int64
    acqua                object
    proteine             object
    lipidi               object
    carboidrati          object
    amido                object
    zuccheri solubili    object
    fibra alimentare     object
    energia kcal          int64
    sodio                 int64
    potassio              int64
    ferro                object
    calcio                int64
    fosforo               int64
    tiamina              object
    riboflavina          object
    niacina              object
    vitamina a           object
    vitamina c            int64
    vitamina e           object
    quantita              int64
    dtype: object

1条回答
网友
1楼 · 发布于 2024-04-18 20:47:35

如图所示,您可以使用以下命令更改列数据类型:

df = df.astype({'col1': 'desired_dtype','col2': 'desired_dtype'})

其中col1col2是要更改类型的列的列名

另外,我最近在处理来自旧.xls文件的数据集时遇到了类似的问题。问题是缺少数据和损坏的值,这使得pd.read_excel将整个列的列检索为dtype = object,而不是所需的浮点

相关问题 更多 >