python - Python 3.x:从两个字典创建数据框
问题描述
我正在研究 Python 3.x。要实现的是:基于键合并字典并形成数据框。这将清楚:
是)我有的:
import numpy as np
import pandas as pd
d1 = {(1, "Autumn"): np.array([2.5, 4.5, 7.5, 9.5]), (1, "Spring"): np.array([10.5, 11.7, 12.3, 15.0])}
d2 = {(1, "Autumn"): np.array([10.2, 13.3, 15.7, 18.8]), (1, "Spring"): np.array([15.6, 20, 23, 27])}
我想要达到的目标:
d3 = {(1, "Autumn"): pd.DataFrame([[2.5, 10.2], [4.5, 13.3], [7.5, 15.7], [9.5, 18.8]],
columns = ["d1", "d2"]), (1, "Spring"): pd.DataFrame([[10.5, 15.6], [11.7, 20],
[12.3, 23], [15.0, 27]], columns = ["d1", "d2"])}
PS:我实际上正在研究RandomForestRegressor
示例。上面的字典是训练和测试数据拆分后的我的 X 和 y 值。我想要实现的是在数据框中并排获取 X, y 以获取具有上述查询的绘图。字典的大小与两个字典中每个键的键和值的数量相同。
解决方案
由于两个字典中都存在所有键(根据您的评论),您可以遍历一个字典的键并从每个字典条目中为每个键创建一个数据框:
d3 = dict()
for k in d1.keys():
d3[k] = pd.DataFrame(np.array([d1[k],d2[k]]).T, columns=["d1","d2"])
输出:
{(1, 'Autumn'):
d1 d2
0 2.5 10.2
1 4.5 13.3
2 7.5 15.7
3 9.5 18.8,
(1, 'Spring'):
d1 d2
0 10.5 15.6
1 11.7 20.0
2 12.3 23.0
3 15.0 27.0}
推荐阅读
- vba - 在工作簿、循环工作表和复制范围之间切换
- mysql - MySQL - 查询中的多个 INSERT INTO 语句导致无用的错误消息
- javascript - 我们如何在“shouldComponentUpdate”中对“this.props”和“nextProps”进行深度比较?
- mysql - 使用自联接条件更新语句
- swift - 如何在扩展 FlutterViewController(委托函数)中返回结果?
- typescript - 使用 TypeScript 管理 jsPDF 的页眉、页脚和分页符
- angular - Angular中可调整大小的表格
- postgresql - RDS 上的 Postgres 13 pg_cron 错误很难追踪
- javascript - 如何使用 vanilla javascript 打开一个覆盖层的 url?
- php - PHP:永久强制变量的数据类型