Во-первых, вот что выглядит мои данные .xlsx таймсерия как:Получить список строк из индекса столбца панд dataframe
и вот как я читаю его:
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)
Что мне нужно сделать, это прочитать метки столбцов AND и строки (строки 2 и 3), а также значения в кадре данных pandas и получить доступ к строкам меток и единиц в виде списка строк. Я не могу понять, как загрузить оба строки 2 и 3 и правильно прочитать время в pandas datetimeindex, но он отлично работает, если я загружаю только метки. Также я повсюду посмотрел и не могу понять, как получить заголовки столбцов в виде списка.
Я был бы признателен, если бы кто-нибудь мог помочь в решении любой из этих проблем.
К сожалению, я не могу сделать двойной чтения, как это требуется, чтобы загрузить 30-40-е годы на каждый лист и программа будет необходимо загрузить 12-16 листов одинаковый размер каждый раз, и хотя первое чтение на файл мало, он все равно занимает довольно много времени, чтобы начать работу. Тем не менее, возможность получить строки будет очень удобна, так как я могу использовать их для создания комбинированного блока сейчас и построения данных, без каких-либо единиц в данный момент. Спасибо за это! – pbreach
Возможно, посмотрите на настройку размера блока, равного длине заголовка, и объедините все, кроме первого фрагмента. Это разделит его на заголовок, данные, только открывая каждый файл один раз. – TomAugspurger