我有一个3层嵌套字典,其结构如下:
字典一:答案:1、2、3、4。1代表冬季,2代表 Spring ,3代表夏季,4代表秋季。
字典2.密钥:2005年至2018年。
字典3.键:0到24。0到24表示每小时平均值。每个键都有与该季节该年的每小时平均值有关的值。
我也贴出了这三本词典的图片。
我是Python的初学者,到目前为止,我已经尝试了下面的代码,但它没有给我想要的输出。
df = pd.DataFrame.from_dict({(i, j, k): pm_10_abs_season[i][j][k] for i in pm_10_abs_season.keys() for j in pm_10_abs_season[i].keys() for k in pm_10_abs_season[i][j]}, orient = 'index')
我得到的输出如下所示:
我想将数据保存在四个Pandas数据框中。每个季节一个。然后,我想将数据保存为以下格式:
列:0小时、1小时、3小时、......、23小时
行数:2005年、2006年、2007年、......、2018年
因此,Pandas DataFrame的结构类似于以下内容:
Year|Hour 0|Hour 1|Hour 2|...|Hour 23
-------------------------------------
2005|
2005|
2005|
... |
2018|
1条答案
按热度按时间jgzswidk1#
我想将数据保存在四个Pandas数据框中
我假设您可以使用嵌套的DataFrame,因为您没有另外指定,并且您所需的输出结构没有表示任何反对它的内容。如果您想将其扁平化,那么我需要有关输出结构的更多详细信息,最好还需要一些输出示例。
你可以用类似
或
[我写了第二个,然后才意识到/发现 {column-〉{index-〉value}} 是
pd.DataFrame
的有效输入结构,并且pm_10_abs_season
中的4个字典具有 {index-〉{column-〉value}} 结构,它只需要是transposed(.T
)以非常接近您想要的输出结构。第二个版本看起来确实快了一点点(约10%),但我不确定您是否认为这一点足够重要。]无论如何,我生成了一个test input(
seasons_dfs
)来模拟您的pm_10_abs_season
(但是其中的DataFrame只有一个包含字符串'<DataFrame>'
的单元格)然后使用函数(*
dict2df(sd)
*)将其转换为 Dataframe 字典(nestedDfs
)。nestedDfs
中的4个 Dataframe 应该具有您所需的输出结构:第一节第一节第一节第一节第二节第一节第三节第一节