python - 使用 Python 将数据帧的行与字典配对
问题描述
如果我使用以下行,我正在尝试将 pandas 数据框(从 Excel 文档创建)的行配对到字典中:
[in:] dict = dict(zip(df.loc[1], df.iloc[2]))
[out:] {'Value1': nan, 'Value2': 'Menu', 'Value3': 'Select', nan: nan, nan: nan}
我可以将索引 1 和 2 的行放入字典中,我希望脚本执行并像这样对数据行进行配对,即从第 1 行和第 2 行、第 3 行和第 4 行、第 5 行创建的字典6等,但无论我尝试什么,我都无法做到这一点,任何建议表示赞赏!
解决方案
这是我写的一个小函数来实现你所需要的
import pandas as pd
def toDict(df : pd.DataFrame, indices : list):
DICT = {}
DATA_SLICE = df.iloc[indices]
for COL in df.columns:
DICT[COL] = list(DATA_SLICE[COL])
return DICT
这是我正在使用的数据
>>> data
Motor Screw Pgain Vgain Class
0 E E 5 4 0.281251
1 B D 6 5 0.506252
2 D D 4 3 0.356251
3 B A 3 2 5.500033
4 D B 6 5 0.356251
.. ... ... ... ... ...
162 B C 3 2 4.499986
163 B E 3 1 3.699967
164 C D 4 3 0.956256
165 A B 3 2 4.499986
166 A A 6 5 0.806255
假设我想要索引1
, 3
, 163
,中的数据164
作为dict
>>> toDict(data, [1, 3, 163, 164])
{'Motor': ['B', 'B', 'B', 'C'], 'Screw': ['D', 'A', 'E', 'D'], 'Pgain': [6, 3, 3, 4], 'Vgain': [5, 2, 1, 3], 'Class': [0.5062525, 5.500033, 3.6999667, 0.9562556999999999]}
或者4
和162
>>> toDict(data, [4, 162])
{'Motor': ['D', 'B'], 'Screw': ['B', 'C'], 'Pgain': [6, 3], 'Vgain': [5, 2], 'Class': [0.35625148, 4.499986]}
要不就166
>>> toDict(data, [166])
{'Motor': ['A'], 'Screw': ['A'], 'Pgain': [6], 'Vgain': [5], 'Class': [0.8062545999999999]}
推荐阅读
- python - 如何调用“tfa.losses.triplet_semihard_loss”?
- android - Material Better Spinner 下拉菜单未完全显示
- assets - A-Frame - 对许多资产?
- javascript - 如何在js中删除/隐藏窗口关闭按钮而不是对话框
- ansible - 如何从文件中读取特定行并将其注册为变量并将其传递给ansible中的另一个角色
- java - 如何使用spring批处理将数据库结果集转换为xml文件
- javascript - 在 C# 中通过 JS 解密 RSA 公钥加密数据的问题
- android - 是否可以将前台服务附加到 PlayerNotificationManager 发出的通知?
- spring-boot - 使用 Springboot 的 Logback 不接受环境变量
- spark-ar-studio - 我可以在 Spark AR Studio 的场景中创建或伪造第二个摄像头吗