熊猫均值计算groupby 2列-如何忽略顺序?

瓦伦丁

假设我有一个包含3列的数据框:C1,C2和Value。我的C1和C2列都包含从0到3的值。

| C1 | C2 | Value |
|----|----|-------|
| 1  | 3  |   45  |
| 2  | 1  |  -50  |
| 3  | 1  |  200  |
| 1  | 2  |  -10  |
| 3  | 1  |   18  |
| 2  | 3  |    2  |
| 1  | 3  |   25  |

我想获取给定索引元组(x,y)的'value'列中值的平均值,其中C1中的x和C2中的y。但是,我想将元组(x,y)和(y,x)视为相同,即。没有考虑订购。我将尝试通过一个例子来阐明我的问题:假设C1 = 1且C1 = 3,在这种情况下,我想取平均值45、200、18和25。均以索引排序的数据框或序列。在上面的示例中,平均值为72。我想在结果中输入条目(1,3)和(3,1)的值都为72。(目标是能够绘制条形图的手段。)

我希望我的描述足够清楚。

我已经使用panda groupby运算符来找到方法,但是找不到如何处理订购问题。

这是我用于计算均值的代码:

python results = df.groupby(['C1','C2'])['value'].mean()

我必须对两个排序都取平均值,然后将结果保存回两个元组排序,但是我找不到合适的方法来做到这一点。谢谢你的帮助 !

ky

IIUC,您可以使用np.sort()overaxis=1和groupby对df进行排序

m=pd.DataFrame(np.sort(df[['C1','C2']],axis=1),columns=['C1','C2']).join(df[['Value']])
m.groupby(['C1','C2']).Value.mean()

C1  C2
1   2    -30
    3     72
2   3      2
Name: Value, dtype: int64

print(m)

   C1  C2  Value
0   1   3     45
1   1   2    -50
2   1   3    200
3   1   2    -10
4   1   3     18
5   2   3      2
6   1   3     25

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在SQL中计算不同的列而忽略列顺序

应用.nsmallest(2)后,计算熊猫的Groupby对象的均值

如何用熊猫计算逗号分隔列的均值?

匹配多列而忽略熊猫的顺序

我可以在熊猫数据框上应用Groupby并计算所有列的均值吗?

如何使用熊猫在GroupBy对象上计算滚动平均值?

如何计算在熊猫中另一列上分组的平均值

如何计算n行的平均值并将答案粘贴到熊猫列的后n行?

熊猫-如何对不同的列进行分组以计算各组的平均值?

无法计算数据集中的平均值如何迭代熊猫列并更新内容

如何计算groupby和set_index之后的特殊列值的平均值

熊猫:如何计算分组平均值

如何动态计算熊猫系列的均值?

在熊猫中,如何根据列中的条件使用groupby计算行数?

如何使用groupby计算熊猫数据框中特定列的总数百分比?

如何使用groupby忽略元组中值的顺序-python

熊猫groupby并计算列的唯一值

熊猫groupby()比较并计算两列

如何分组 Pandas DataFrame 中的列(忽略顺序)?

Redgate SQL Compare-如何忽略列顺序的差异?

Python :(熊猫)如何忽略按ID分组的最低和最高25%的值进行均值计算

如何获得熊猫切类别列的均值

AssertEquals 2列表忽略顺序

没有For循环的熊猫列的顺序计算

熊猫:计算列每2行的平均值,然后将其放入新列中

熊猫如何基于groupby计算结果

使用熊猫计算均值时排除列中的零

熊猫:计算列均值会产生空值

计算熊猫中非数字列的平均值