pandas read_csv 将标头解析为字符串类型,但我想要整数 [英] pandas read_csv parse header as string type but i want integer

查看:65
本文介绍了pandas read_csv 将标头解析为字符串类型,但我想要整数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

例如csv文件如下,(1,2,3)是header!

for example, csv file is as below ,(1,2,3) is header!

1,2,3
0,0,0

我使用 pd.read_csv 读取 csv 文件并打印

I read csv file using pd.read_csv and print

import pandas as pd
df = pd.read_csv('./test.csv')
print(df[1])

出现错误key error:1

似乎 read_csv 将标头解析为字符串..

it seems like that read_csv parse header as string..

有没有办法在数据框列中使用整数类型?

is there any way using integer type in dataframe column?

推荐答案

我认为更通用的是通过 astype:

I think more general is cast to columns names to integer by astype:

df = pd.read_csv('./test.csv')
df.columns = df.columns.astype(int)

另一种方法是首先只获取第一列并在 read_csv:

Another way is first get only first column and use parameter names in read_csv:

import csv
with open("file.csv", "r") as f:
    reader = csv.reader(f)
    i = np.array(next(reader)).astype(int)

#another way
#i = pd.read_csv("file.csv", nrows=0).columns.astype(int)
print (i)
[1 2 3]

df = pd.read_csv("file.csv", names=i, skiprows=1)
print (df.columns)
Int64Index([1, 2, 3], dtype='int64')

这篇关于pandas read_csv 将标头解析为字符串类型,但我想要整数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆