Python 将31个数据帧的嵌套列表转换为31个单独数据帧的最简单方法
我有一个由31个嵌套数据帧组成的大列表。每个列表数据帧有两个字符串:时间戳和测量数据。我想把它们转换成独立的数据帧 大名单截图 现在我要打31行。有最简单的方法吗?使用for循环?等等 基于以下来自@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
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循环吗?经过反复试验,我找到了问题的根本原因,问题得到了解决。现在它已成功运行。我更新了我的问题。谢谢。你能在