我有一个由31个嵌套数据帧组成的大列表。每个列表数据帧都有两个字符串:时间戳和测量数据。我想将它们转换为单独的数据框。
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
此代码成功运行,没有错误。
答案 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]