2 回答
TA贡献1805条经验 获得超9个赞
我用您给我的示例进行了尝试,并注意到您要读取的列数是6,即1, 2, 3, 4, 5 and 6,而usecols您输入的也使用6条目,即索引0, 2, 3, 4, 5 and 6。换句话说,您正在使用不存在的列,这就是它转向NaN.
内容test.csv为:
1-5: *skip*
6: 1, 2, 3, 4, 5, 6
7: a, b, c, d, e, f
8: A, B, C, D, E, F
我用您给定的数据进行了尝试,结果如下:
df = pandas.read_csv('test.csv', usecols = [0, 2:6], skiprows=5)
print(df)
产生:
1 3 4 5 6
0 a c d e f
1 A C D E F
另一方面,您的原始代码:
df = pandas.read_csv('test.csv', usecols = [0, 2:7], skiprows=5)
print(df)
产量:
1 2 3 4 5 6
0 a c d e f NaN
1 A C D E F NaN
为此,您也可以删除该列:
df.drop(['6'], axis=1, inplace=True)
df.columns = ['1', '3', '4', '5', '6']
TA贡献1934条经验 获得超2个赞
您可以尝试类似下面的方法,在其中指定要保留的所有列。
df.loc[:, ["1", "3", "4", "5", "6"]]
或者您可以低于此将仅删除指定的列。
df.drop(["2"], axis=1)
添加回答
举报
