Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在DataFrame上改进嵌套for循环,在python中遍历所有可能的列组合?

如何在DataFrame上改进嵌套for循环,在python中遍历所有可能的列组合?
EN

Stack Overflow用户
提问于 2022-09-23 19:32:53
回答 1查看 33关注 0票数 0

我有一个DataFrame,我使用嵌套的for循环来遍历特定列的所有可用组合。我创建了一个示例代码:

代码语言:javascript
运行
AI代码解释
复制
from pandas import DataFrame
from numpy import unique

df = DataFrame([[30, 'DEV1', 'X4Y4', [0, 1, 2, 3], [1E-5, 2E-5, 3E-5, 4E-5]],
                [30, 'DEV1', 'X5Y5', [0, 1, 2, 3], [1E-5, 2E-5, 3E-5, 4E-5]],
                [30, 'DEV2', 'X4Y4', [0, 1, 2, 3], [1E-5, 2E-5, 3E-5, 4E-5]],
                [30, 'DEV2', 'X5Y5', [0, 1, 2, 3], [1E-5, 2E-5, 3E-5, 4E-5]],
                [85, 'DEV1', 'X4Y4', [0, 1, 2, 3], [1E-5, 2E-5, 3E-5, 4E-5]],
                [85, 'DEV1', 'X5Y5', [0, 1, 2, 3], [1E-5, 2E-5, 3E-5, 4E-5]],
                [85, 'DEV2', 'X4Y5', [0, 1, 2, 3], [1E-5, 2E-5, 3E-5, 4E-5]],
                [85, 'DEV2', 'X5Y5', [0, 1, 2, 3], [1E-5, 2E-5, 3E-5, 4E-5]]],
               columns=['Temperature', 'Device', 'Coordinate', 'Voltage', 'Current'])

Temperature = unique(df['Temperature'])
for temperature in Temperature:
    df1 = df.query("Temperature == @temperature")
    Device = unique(df1['Device'])
    for device in Device:
        df2 = df1.query("Device == @device")
        Coordinate = unique(df2['Coordinate'])
        for coordinate in Coordinate:
            df3 = df2.query("Coordinate == @coordinate")
            # do something with df3['Voltage'] and df3['Current']

我肯定还有更好的办法。在网上,我读到了关于使用groupbyagg的文章,但我不太明白如何将其应用到我的案例中。

你能分享一下你的想法吗?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2022-09-24 00:08:49

您可以首先应用groupy函数,然后使用它的groups属性。它将返回具有键值的dict,所有可能的列值组合和dict值的值都是标签。

代码语言:javascript
运行
AI代码解释
复制
list(df.groupby(["Temperature","Device","Coordinate"]).groups.keys())


[(30, 'DEV1', 'X4Y4'),
 (30, 'DEV1', 'X5Y5'),
 (30, 'DEV2', 'X4Y4'),
 (30, 'DEV2', 'X5Y5'),
 (85, 'DEV1', 'X4Y4'),
 (85, 'DEV1', 'X5Y5'),
 (85, 'DEV2', 'X4Y5'),
 (85, 'DEV2', 'X5Y5')]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73834568

复制
相关文章
在pandas中遍历DataFrame行
inp = [{'c1':10, 'c2':100}, {'c1':11,'c2':110}, {'c1':12,'c2':120}]
用户7886150
2020/12/26
3.4K0
问与答62: 如何按指定个数在Excel中获得一列数据的所有可能组合?
Q:数据放置在列A中,我要得到这些数据中任意3个数据的所有可能组合。如下图1所示,列A中存放了5个数据,要得到这5个数据中任意3个数据的所有可能组合,如列B中所示。如何实现?
fanjy
2019/08/13
5.8K0
问与答62: 如何按指定个数在Excel中获得一列数据的所有可能组合?
Python+Pandas逐行处理DataFrame中的某列数据(无循环)
创建一个包含10行6列随机数的DataFrame,行标签从大写字母A开始,列标签从小写字母u开始。然后从上向下遍历,如果某行u列的值比上一行u列的值大,就把该行x列的值改为上一行x列的值加1,否则保持原来的值不变。
Python小屋屋主
2023/08/29
7930
Python+Pandas逐行处理DataFrame中的某列数据(无循环)
在Python中,不用while和for循环遍历列表
s1=s.encode(encoding='utf-8').decode('unicode_escape')
用户2337871
2019/07/19
5.7K0
pandas按行按列遍历Dataframe的几种方式
iterrows(): 按行遍历,将DataFrame的每一行迭代为(index, Series)对,可以通过row[name]对元素进行访问。 itertuples(): 按行遍历,将DataFrame的每一行迭代为元祖,可以通过row[name]对元素进行访问,比iterrows()效率高。 iteritems():按列遍历,将DataFrame的每一列迭代为(列名, Series)对,可以通过row[index]对元素进行访问。 示例数据
kirin
2021/04/30
7.4K0
从DataFrame中删除列
在操作数据的时候,DataFrame对象中删除一个或多个列是常见的操作,并且实现方法较多,然而这中间有很多细节值得关注。
老齐
2021/03/29
7.4K0
Python 循环嵌套
for iterating_var in sequence: for iterating_var in sequence: statements(s) statements(s)
用户8442333
2021/05/27
1.8K0
Python 循环嵌套
文 | 云豆 来源 | 菜鸟教程 云豆贴心提醒,本文阅读时间3分钟,文末有秘密! Python 语言允许在一个循环体里面嵌入另一个循环。 Python for 循环嵌套语法: Python w
小小科
2018/05/04
2.2K0
Python 循环嵌套
Python 嵌套for循环
嵌套for循环 for循环中的for循环 代码 # coding:utf-8 a = [1, 2, 3] b = [4, 5, 6] for i in a: print(i) print('------') for j in b: print(i + j) print('=======') print(i, j)
Zkeq
2022/05/18
1.6K0
python中循环遍历for怎么用_python遍历字典的值
Python 会自动将dict_1视为字典,并允许你迭代其key键。然后,我们就可以使用索引运算符,来获取每个value值。
全栈程序员站长
2022/09/22
6.2K0
python中循环遍历for怎么用_python遍历字典的值
Python读书笔记11(循环遍历所有内容)
前面的文章和大家分享了数字、字符串、列表和元组,我们重新声明这些变量回顾一下! 数字、浮点数直接用等号声明 字符串需要将内容用英文单引号或双引号括起来 列表是外面用中括号括起来! 元组是用小括号括起
用户1332619
2018/03/08
7820
Python读书笔记11(循环遍历所有内容)
PHP实现给定一列字符,生成指定长度的所有可能组合示例
本文实例讲述了PHP实现给定一列字符,生成指定长度的所有可能组合。分享给大家供大家参考,具体如下:
用户8675788
2021/07/13
9600
输出指定括号对数的所有可能组合
广度优先搜索的目的是先得到完整的括号对(), 这种情况下需要需要考虑如下两种情况:
孟君
2023/02/23
8320
输出指定括号对数的所有可能组合
【Python】循环语句 ② ( while 嵌套循环 | 代码示例 - while 嵌套循环 )
while 嵌套循环 也是基于 空格缩进 , Python 中基于 空格缩进 判定代码逻辑的层次关系 ;
韩曙亮
2023/10/11
5420
【Python】循环语句 ② ( while 嵌套循环 | 代码示例 - while 嵌套循环 )
Python编程 for嵌套循环
在 while 循环中,拥有 break 与 continue 语句,那 for 循环中也有 break 与 continue 语句,并且作用一致。
网络豆
2023/10/15
2350
Python编程 for嵌套循环
Java中for循环嵌套以及循环的中断
很多初学者到for循环这里就学不会了,今天,我来讲解一下for循环以及嵌套循环,还有中断。
用户7886150
2020/12/03
6.3K0
python for循环多个参数处理_python for循环嵌套
实际上,“使用for循环遍历数组的最简单方法”(Python类型被命名为“list”BTW)是第二种方法,即for item in somelist:
全栈程序员站长
2022/09/22
2.3K0
python用符号拼接DataFrame两列
碰到Null值时,会报错,因为none不可与str运算 解决如下,加入if判断即可
诡途
2022/01/07
1.8K0
点击加载更多

相似问题

循环遍历DataFrame列转换的所有组合

10

所有可能的DataFrame - pandas / python列组合

20

循环遍历所有可能的组合

21

数组中所有可能的索引组合,如嵌套的多个循环

23

循环遍历ArrayList的所有可能组合

342
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档