2024-05-23 21:14:08 发布
网友
例如,csv文件如下,(1,2,3)是头文件!在
1,2,3 0,0,0
我读csv文件使用pd.read_csv文件和印刷品
发生错误key error:1
key error:1
似乎read_csv将头解析为字符串。。在
read_csv
有没有办法在dataframe列中使用integer类型?在
您可以将set_axis与lambda和{}结合使用
set_axis
lambda
假设csv看起来像:
1,1,2,2 a,b,a,b 1,3,5,7 0,2,4,6
读起来像:
您可以在第一级使用整数对列设置进行管道化,例如:
df.set_axis(df.columns.map(lambda i: (int(i[0]), i[1])), axis=1, inplace=False) 1 2 a b a b 0 1 3 5 7 1 0 2 4 6
我认为更一般的情况是由^{}将列名转换为integer:
integer
df = pd.read_csv('./test.csv') df.columns = df.columns.astype(int)
另一种方法是首先只获取第一列并在^{}中使用参数names:
names
使用skiprows=1和header=None跳过标题列。这将自动加载从0开始的具有整数报头的数据帧。在
skiprows=1
header=None
0
df = pd.read_csv('test.csv', skiprows=1, header=None).rename(columns=lambda x: x + 1)
rename调用是可选的,但是如果您希望您的头从1开始,可以保留它。在
rename
1
如果您有一个MultiIndex,请使用set_levels将0th级别设置为整数:
MultiIndex
set_levels
df.columns = df.columns.set_levels( df.columns.get_level_values(0).astype(int), level=0 )
您可以将}结合使用
set_axis
与lambda
和{假设csv看起来像:
读起来像:
^{pr2}$您可以在第一级使用整数对列设置进行管道化,例如:
我认为更一般的情况是由^{} 将列名转换为
integer
:另一种方法是首先只获取第一列并在^{} 中使用参数
^{pr2}$names
:使用
^{pr2}$skiprows=1
和header=None
跳过标题列。这将自动加载从0
开始的具有整数报头的数据帧。在rename
调用是可选的,但是如果您希望您的头从1
开始,可以保留它。在如果您有一个
MultiIndex
,请使用set_levels
将0th级别设置为整数:相关问题 更多 >
编程相关推荐