У меня большой список, состоящий из 31 вложенных фреймов данных.Каждый фрейм данных списка имеет две строки: метка времени и данные измерений.Я хочу преобразовать их в отдельные кадры данных.
Снимок экрана большого списка ![enter image description here](https://i.stack.imgur.com/stWsM.png)
biglist = [list1,list2,.........list31]
df1 = biglist[0]
.
.
df31 = biglist[30]
print(df1)
02/01/2019 09:30:23.000 26.77196
02/01/2019 10:10:32.000 59.66217
02/01/2019 10:50:32.000 85.40406
02/01/2019 11:30:32.000 61.95119
Теперь я набираю для этого 31 строку.Есть ли самый простой способ сделать это?использовать для цикла?и т. д.
Исходя из принятого ниже ответа от @ WeNYoBen
, я использую словарь для вызова каждого фрейма данных.Для перебора словаря я делаю это
df=dict(enumerate(biglist1[1]))
for i,x in df:
# print(i,x)
df[i] = df[i].apply(pd.to_numeric)
df[i].index = pd.to_datetime(df[i].index)
Работает успешно, без ошибок.Теперь я хочу объединить данные только с 24 кадров.Код
df[0]['time']=df[0].index ### considering POA as reference dataframe
df[0]['time'] = df[0]['time'].apply(pd.to_datetime) # print(df[0].index) # print(dfm24.index) dfm1.dtypes
l=[]
s1 = []
for i,x in enumerate(df): ## dfm24.duplicated(subset=None, keep='first')
s1=df[0].reindex(df[i].index,method='nearest')
b = 1
if i>8:
b = 2
if i==1:
l.append(s1.join(df[i]).set_index('time').add_suffix(df[i].columns[0][-b:]))
if (i > 1) & (i<25):
l.append(s1.join(df[i]).set_index('time').reindex(l[0].index,method='nearest').add_suffix(df[i].columns[0][-b:]))
combdf = pd.concat(l,1) # combdf.dtypes
Этот код успешно работает без ошибок.