python - 遍历字典,引用键
问题描述
我正在尝试遍历字典,但在计算中使用循环键(或我选择的值)。
编辑 11/24:添加额外的上下文
所以这个例子是:
步骤 1) 我有一个包含以下列的 CSV 文件... 第 1 列、第 2 列、第 3 列
file = pd.read_csv("/Path/test.csv")
time Change Column 1 Column 2 Column 3 Column 4
01/01 .5 3 5 7 1
01/01 .3 5 1 4 2
01/01 .5 1 3 8 2
01/02 .3 5 1 4 1
01/02 .5 1 3 8 3
第 2 步)我有一个字典,对这些列进行分组,并提供有关键值对中列所需计算的信息。我还为每列分配了一个代码以供以后使用(注意:有 10 组列,每组包含 4-20 列,下面只是一个示例):
dict = {
'group': {
'a':{
'ranges':{
'a':{'<':0,'>':-1},
'b':{'<':0,'>':-2}}
'indicators':{
'a':'Column 1',
'b':'Column 2'}
'b':{
'ranges':{
'a':{'<':0,'>':-1},
'b':{'<':0,'>':-2}}
'indicators':{
'a':'Column 3',
'b':'Column 4'}
第 3 步[这是我遇到麻烦的地方])“组”是具有“相似”数据以及我想要测试的相应范围的列的集合。我正在尝试将不同的组组合与其他组进行比较。因此,将第 1 列的所有不同范围与第 3 列的所有不同范围进行比较,然后是 4……然后将第 2 列的所有不同范围与第 3 列的所有不同范围进行比较,然后是 4。我的想法是分配一个基于 GROUP、RANGE 和 INDICATORS 的相应字母的代码......例如,“aaa”将是 GROUP a,RANGES {'<':0,'>':-1},在 INDICATOR Column 1
注意:我一次只需要比较 3 列,例如循环可以在 3 个组合处停止,但是我也想知道 2 个组合是否比 3 个更好。
第 4 步)我想通过计算每个组合的平均值、最大值、最小值和计数来对不同的组合进行分组,以查看哪些列和范围的组合效果最好。
我正在尝试为此创建一个巨大的循环,但为了自学,我只是询问社区的一部分。但我看到这种零碎的方法对理解我的问题的背景没有帮助。所以希望这个额外的解释能提供更多的清晰度
我最终想要的输出:
Code Average Max Min Count
aaa 0.25 0.5 0.3 3
aab 0.25 0.5 0.3 3
aac 0.25 0.5 0.3 3
aba 0.25 0.5 0.3 3
abb 0.25 0.5 0.3 3
abc 0.25 0.5 0.3 3
解决方案
如果我理解正确,您想将运算符的字符串表示形式转换为可以应用于字典中的值的运算符(对吗?)在这种情况下,例如,您可以定义映射符号的字典到模块中的相应运算符operator
,
import operator
ops = {'<': operator.lt,
'<=': operator.le,
'=': operator.eq,
'>': operator.gt,
'>=': operator.ge,
'!=': operator.ne
}
然后通过它的符号接收这个运算符s
,
ops[s]
例如
s= '<'
ops[s](1, 2) # evaluates to True
推荐阅读
- sql-server - MS SSIS:将数据从 REST API 导入 SQL 表。错误(401)“未经授权”使用 ZappySys
- python - 如何使用 BeautifulSoup 获取特定链接
- python - 在 discord.py 中等待
- python - 我如何使用我的 python 脚本作为 url 的代理
- keycloak - Keycloak 主题未针对从应用程序登录的领域进行更新
- google-cloud-platform - 仅在 GCP 内无法在 www.googleapis.com 上找到服务器
- .htaccess - 使用 HTACCESS 阻止除一个域之外的所有引用者
- spring-integration - Spring Integration 文件适配器测试在 macOS 上失败
- python - NL4Py 的弃用警告
- c# - 协程不能从实例化对象内部工作