Python中文
首页
教程
问答
标签
搜索
登录
注册
每组Pandas计算
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有一个分组数据框。以下是一组示例:</p> <pre><code>name pH salt id sample 7.5 50 1 0.48705 2 0.42875 3 0.38885 4 0.34615 5 0.35060 6 0.29280 7 0.28210 8 0.24535 stock 0.66090 </code></pre> <p>对于每个组,都有一个定义初始质量的库存解决方案。我想迭代所有的组,并从每个项目中减去初始质量。我不想显式地写<code>df_grouped['sample'][7.5][50]</code>这样的东西。如果可能,我希望避免任何嵌套循环。</p> <p>有什么建议吗?</p> <p>我只能想出这样的解决方案:</p> <pre><code>for na, gr in df_label_gr: if 'stock' in na: print(na) </code></pre> <p>这给了我:</p> <pre><code>('sample', 7.5, 50.0, 'stock') ('sample', 7.5, 150.0, 'stock') ('sample', 8.5, 50.0, 'stock') ('sample', 8.5, 150.0, 'stock') </code></pre> <p>所以我可以用前三个条目索引我的组并做一些计算。</p> <p>编辑:</p> <p>为了不把讨论搞砸,我在这里再次提出同样的问题,并做了一点小小的修改:</p> <p>不同的是,在这里我想从每个组中减去不同的值,但要根据组的具体情况来做</p> <pre><code>name pH salt id sample 7.5 50 1 0.48705 2 0.42875 3 0.38885 4 0.34615 5 0.35060 6 0.29280 7 0.28210 8 0.24535 stock 0.66090 sample 8.5 50 1 0.48705 2 0.42875 3 0.38885 4 0.34615 5 0.35060 6 0.29280 7 0.28210 8 0.24535 stock 0.1 </code></pre> <p>我尝试了以下方法:</p> <pre><code>df = a2_01.df.reset_index() df.groupby(by = ['name','pH','salt','id']).aggregate(np.sum).apply(lambda x: x - x[x.index.get_level_values('id') == 'stock'].values[0]) </code></pre> <p>问题是,<code>x[x.index.get_level_values('id') == 'stock'].values</code>给了我一个包含所有值的数组,而不是实际组的值。所以我可以从第一个组(<code>values[0]</code>)中的所有值减去id==stock的样本。</p> <p>我怎样才能从同一组样本中减去股票的价值呢?</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您可以为此使用<code>groupby</code>,特别是<code>df_grouped.groupby(level=[0, 1, 2]).apply(fancy_func)</code>在您的情况下,其中<code>fancy_func</code>接受子数据帧并返回值。</p> <p>结果将是一系列值,按相同级别索引。</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
在子类中访问超类的属性setter
6 回答
在子类中调用@classmethod会给出一个“TypeError:super(type,obj):obj必须是类型的实例或子类型”
6 回答
在子类中调用父方法
1 回答
在子类中调用继承方法的区别?
4 回答
在子类中重写_new __以创建特定父类实例是否为反模式?
4 回答
在子类中重写时使用父属性setter
7 回答
在子类化Django的模型文件字段时,如何使用关键字参数
10 回答
在子类化pathlib.(Posix)路径时,使用pyfakefs对其进行修补
9 回答
在子类化时立即调用父类'\uu init'
8 回答
在子类定义期间重新初始化父类属性
5 回答
在子类模型中,大多数卷积滤波器不存在梯度
5 回答
在子类的另一个方法中调用超类的方法
1 回答
在子类的方法中对默认参数使用继承变量
7 回答
在子类的父类中访问重写的类变量
3 回答
在子线程中为TextCtrl设置值会导致不总是起作用并导致随机分段错误
6 回答
在子线程中创建BeautifulSoup对象将打印一个编码
5 回答
在子组中向上计数的列
10 回答
在子组中计算操作
6 回答
在子组列中查找“string”的出现项,并根据其出现项标记maingroup
7 回答
在子绘图Python中绘制日志比例
8 回答