我想读取一个看起来像这样的csv文件:
STATIONS_ID;MESS_DATUM;QN_9;TT_TU;RF_TU;eor
1975;2016032200; 3; 5.9; 89.0;eor
1975;2016032201; 3; 5.5; 86.0;eor
1975;2016032202; 3; 5.4; 87.0;eor
1975;2016032203; 3; 4.7; 90.0;eor
...
我使用:
import pandas as pd
stats = pd.read_csv('data/temp_fuhlsbuettel_akt.txt', sep=';')
结果是:
eor列看上去很烦人,我必须用以下方法消除它:
stats = stats.drop('eor', 1)
是否有一种更好的方法来读取此文件而不创建eor列?
答案 0 :(得分:0)
您可以使用usecols
参数,该参数接受位置整数索引或列名的列表。所以:
pd.read_csv('data/temp_fuhlsbuettel_akt.txt', sep=';', usecols=['STATIONS_ID', 'MESS_DATUM', 'QN_9', 'TT_TU', 'RF_TU'])
或
pd.read_csv('data/temp_fuhlsbuettel_akt.txt', sep=';', usecols=[0, 1, 2, 3, 4]) # or usecols=list(range(5))
答案 1 :(得分:0)
使用:
cols = list(pd.read_csv('data/temp_fuhlsbuettel_akt.txt', sep=';', nrows=1))
df = pd.read_csv('data/temp_fuhlsbuettel_akt.txt', sep=';', usecols=[i for i in cols if i != 'eor'])