【发布时间】:2020-09-04 17:20:51
【问题描述】:
我已经创建了一本字典,方法是使用这种编码将一些雨量计按它们的代码分组
dict_of_gauges = {k: v for k, v in PE_14.groupby('gauge_code')}
这给了我一些如下所示的条目
11800 261070705A PAULISTA PE 2014-08-21 17:10:00 0.2
11801 261070705A PAULISTA PE 2014-08-21 17:20:00 0.0
11802 261070705A PAULISTA PE 2014-08-21 17:30:00 0.2
11803 261070705A PAULISTA PE 2014-08-21 17:40:00 0.0
11804 261070705A PAULISTA PE 2014-08-21 18:00:00 0.0
[3966 rows x 5 columns],
'261070704A': gauge_code city state datetime rain_mm
11493 261070704A PAULISTA PE 2014-08-21 21:20:00 0.2
11494 261070704A PAULISTA PE 2014-08-21 21:30:00 0.0
11495 261070704A PAULISTA PE 2014-08-21 21:40:00 0.0
11496 261070704A PAULISTA PE 2014-08-21 21:50:00 0.0
11497 261070704A PAULISTA PE 2014-08-21 22:00:00 0.0
[4180 rows x 5 columns],
现在我真的很想为它们中的每一个创建数据框,并指定诸如“df1”、“df2”等名称……但我似乎不知道如何在 FOR 中做到这一点。 我最终使用的代码是
df1 = pd.DataFrame.from_records(dict_of_gauges['261070703A'])
df2 = pd.DataFrame.from_records(dict_of_gauges['261070705A'])
.
.
.
但是多次做同样的事情不是很专业,我不知道如何分配这些名称,我尝试制作的伪代码(如下)并没有真正起作用,因为它覆盖了“df”正如预期的那样,每个循环。
listdfs = ['df0','df1','df2','df3','df4','df5']
for df, gauge in zip(listdfs, dict_of_gauges):
df = pd.DataFrame.from_records(dict_of_gauges[gauge])
有人可以给我一些启示吗?
【问题讨论】:
-
利用现有的字典结构并将字典中的键重命名为相关/易于调用的内容更简单、更容易。例如。将“261070703A”更改为“df1”。您将受益于能够以编程方式更新名称并保持非常有用的字典结构。
-
这个列表理解有帮助吗?一种或另一种方式,您最终会得到一个数据框列表
dframes = pd.DataFrame.from_records(dict_of_gauges[key]) for key in dict_of_gauges.keys()
标签: python pandas for-loop iteration