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)
添加回答
舉報