将31个数据帧的嵌套列表转换为31个单独数据帧的最简单方法

时间:2019-07-11 16:17:18

标签: python pandas dataframe

我有一个由31个嵌套数据帧组成的大列表。每个列表数据帧都有两个字符串:时间戳和测量数据。我想将它们转换为单独的数据框。

大名单的屏幕截图 enter image description here

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行。有最简单的方法吗?使用for循环?等等

基于@ 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

此代码成功运行,没有错误。

1 个答案:

答案 0 :(得分:1)

这不安全,但是可以解决

<PULSE version="2.0">
    <TIME_STAMP value="" timezone="" />
</PULSE

更安全的方法是将其保存到字典中

variables = locals()

for i,j in enumerate(biglist) :
    variables["df{0}".format(i+1)] = j

更新

d=dict(enumerate(biglist))
d[0]