首先,这是我的 .xlsx 时间序列数据的样子:
这就是我的阅读方式:
def loaddata(filepaths):
t1 = time.clock()
for i in range(len(filepaths)):
xl = pd.ExcelFile(filepaths[i])
df = xl.parse(xl.sheet_names[0], header=0, index_col=2, skiprows=[0,2,3,4], parse_dates=True)
df = df.dropna(axis=1, how='all')
df = df.drop(['Decimal Year Day', 'Decimal Year Day.1', 'RECORD'], axis=1)
df.index = pd.DatetimeIndex(((df.index.asi8/(1e9*60)).round()*1e9*60).astype(np.int64)).values
if i == 0:
dfs = df
else:
dfs = concat([dfs, df], axis=1)
t2 = time.clock()
print "Files loaded into dataframe in %s seconds" %(t2-t1)
return dfs
files = ["London Lysimeters corrected 5min.xlsx"]
data = loaddata(files)
我需要做的是将列标签和单位(第 2 行和第 3 行)以及值读取到 pandas 数据框中,并能够将标签和单位行作为字符串列表进行访问。我似乎无法弄清楚如何加载第 2 行和第 3 行并将时间正确读入 pandas datetimeindex,但如果我只上传标签,它就可以正常工作。此外,我到处寻找,无法弄清楚如何将列标题作为列表获取。
如果有人可以帮助解决这些问题,我将不胜感激。