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

Python 将31个数据帧的嵌套列表转换为31个单独数据帧的最简单方法,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个由31个嵌套数据帧组成的大列表。每个列表数据帧有两个字符串:时间戳和测量数据。我想把它们转换成独立的数据帧 大名单截图 现在我要打31行。有最简单的方法吗?使用for循环?等等 基于以下来自@WeNYoBen的公认答案,我使用字典来调用每个数据帧。为了遍历字典,我正在这样做 df=dict(enumerate(biglist1[1])) for i,x in df: # print(i,x) df[i] = df[i].apply(pd.to_nu

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

大名单截图

现在我要打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
df[0]['time']=df[0]。索引####将POA作为参考数据帧
df[0]['time']=df[0]['time'].apply(pd.to_datetime)#print(df[0].index)#print(dfm24.index)dfm1.dtypes
l=[]
s1=[]
对于枚举(df)中的i,x:##dfm24.duplicated(subset=None,keep='first')
s1=df[0]。重新索引(df[i]。索引,方法='nearest')
b=1
如果i>8:
b=2
如果i==1:
l、 追加(s1.join(df[i])。设置_索引('time')。添加_后缀(df[i]。列[0][b:]))

如果(i>1)和(i这不是安全的,而是有效的

variables = locals()

for i,j in enumerate(biglist) :
    variables["df{0}".format(i+1)] = j
更安全的方法是将其保存到dict中

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

更新

df=dict(enumerate(biglist1))
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)

这不是安全的,而是工作

variables = locals()

for i,j in enumerate(biglist) :
    variables["df{0}".format(i+1)] = j
更安全的方法是将其保存到dict中

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

更新

df=dict(enumerate(biglist1))
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)

我不知道为什么第一种方法不安全。所以我更喜欢使用
dict
第二种方法。我的问题是,如何访问单个数据帧并在以后使用它们?@Msquare do with d[0]通过dict键获取df我想将每个数据帧中的索引更改为适当的
datetime
,并将相关数据更改为
float
。现在我应该运行for循环吗?经过反复试验,我找到了问题的根本原因,问题得到了解决。现在它已成功运行。我更新了我的问题。谢谢。你能在我不知道为什么第一种方法不安全。所以我更喜欢使用
dict
第二种方法。我的问题是,如何访问单个数据帧并在以后使用它们?@Msquare do with d[0]通过dict键获取df我想将每个数据帧中的索引更改为适当的
datetime
,并将相关数据更改为
float
。现在我应该运行for循环吗?经过反复试验,我找到了问题的根本原因,问题得到了解决。现在它已成功运行。我更新了我的问题。谢谢。你能在