标签: aggregate

Pandas:groupby 并创建一个新列,将聚合应用到两列

agg我在应用pandas 数据框时遇到困难groupby

我有一个df像这样的数据框:

order_id    distance_theo    bird_distance 
      10              100               80
      10               80               80
      10               70               80
      11               90               70
      11               70               70
      11               60               70
      12              200              180
      12              150              180
      12              100              180
      12               60              180
Run Code Online (Sandbox Code Playgroud)

我想要 groupby ,并通过将每个组中的第一行除以每个组的第一行(或任何行,因为一个组中只有一个值)order_id来创建一个新列。crowdistance_theobird_distancebird_distance

order_id    distance_theo    bird_distance    crow
      10              100               80    1.25
      10               80               80    1.25
      10               70               80    1.25
      11               90               70    1.29
      11               70               70    1.29
      11               60               70    1.29
      12              200 …
Run Code Online (Sandbox Code Playgroud)

python group-by aggregate pandas

2
推荐指数
1
解决办法
790
查看次数

mongoDb:找不到索引来验证连接字段是否唯一

嘿,我需要合并我的两个集合,但 mongo 返回“无法找到索引来验证连接字段是否唯一”

1.创建唯一索引 2.删除whenMatched/whenNotMatched

db.getCollection("GeoLite2-City-Blocks-IPv4").aggregate([
    {$match:{longitude:{$gt:175,$lt:180}}},
    {$merge:{
        into:"GeoLite2-City-Locations-ja",
        on:"geoname_id",
        whenMatched: "replace",
        whenNotMatched: "insert" 
    }}
])
Run Code Online (Sandbox Code Playgroud)

预期:返回 GeoLite2-City-Blocks-IPv4 包括 GeoLite2-City-Locations-ja

merge aggregate unique-index mongodb

2
推荐指数
1
解决办法
8064
查看次数

将 df 与用户定义的函数聚合

我有一个关于将 pandas 数据帧与用户定义的函数聚合的问题。如果我有一个数据帧并在有或没有 groupby 的情况下运行 agg,则在使用内置函数时会聚合结果。另一方面,如果我使用自定义函数,则在使用 groupby 时它会按预期工作。当不使用 groupby 时,不会进行聚合。有没有一种方法可以在不使用 groupby 并使用自定义函数的情况下进行聚合?我知道可以只添加一个虚拟变量,但这不是首选的解决方案。测试 1-3 按预期工作,但测试 4 不工作。

df = pd.DataFrame(columns=['a', 'b', 'c'])
n=1000
np.random.seed(0)

df['a'] = np.random.rand(n)
df['a'] = np.random.rand(n)
df['c'] = np.random.randint(1, 4, size=n)

def CoV(_s):
    return pd.Series({'CoV' : np.std(_s)/np.mean(_s)})

test1 = df.agg({'a':['std', np.mean]})
print(test1)

test2 = df.groupby(['c']).agg({'a':['std', np.mean]})
print(test2)

test3 = df.groupby(['c']).agg({'a':[CoV]})
print(test3)

# does not work as intended, no aggregation
test4 = df.agg({'a':[CoV]})
print(test4)
Run Code Online (Sandbox Code Playgroud)

python aggregate function dataframe

2
推荐指数
1
解决办法
3843
查看次数

Mongo聚合没有更新实际文档

从下面的示例可以看出,当我进行聚合时,它会输出所需的结果,但实际结果没有被替换。有人可以告诉我如何保留聚合o/p吗?

> db.demo95.find();
{ "_id" : ObjectId("5eed924ae3fc5c755e1198a2"), "Id" : "5ab9cbe531c2ab715d42129a" }
> db.demo95.aggregate([ { "$addFields": { "Id" : { "$toObjectId": "$Id" } }} ])
{ "_id" : ObjectId("5eed924ae3fc5c755e1198a2"), "Id" : ObjectId("5ab9cbe531c2ab715d42129a") }
> db.demo95.find();
{ "_id" : ObjectId("5eed924ae3fc5c755e1198a2"), "Id" : "5ab9cbe531c2ab715d42129a" }
Run Code Online (Sandbox Code Playgroud)

aggregate mongodb aggregation-framework

2
推荐指数
1
解决办法
2536
查看次数

当shuffle分区大于200时会发生什么(dataframe中的spark.sql.shuffle.partitions 200(默认))

打乱数据的spark sql聚合操作,即spark.sql.shuffle.partitions 200(默认情况下)。当 shuffle 分区大于 200 时,性能会发生什么变化。

当分区数量大于 2000 时,Spark 使用不同的数据结构进行随机簿记。因此,如果分区数量接近 2000,则将其增加到 2000 以上。

但我的问题是,当 shuffle 分区大于 200(假设为 300)时,会发生什么行为。

aggregate shuffle data-partitioning apache-spark

2
推荐指数
1
解决办法
4167
查看次数

ClickHouse 聚合 - 按日/月/年(时间戳)分组?

ClickHouse 有没有办法用时间戳值执行 GROUP BY DAY/MONTH/YEAR() ?在将 MySQL 查询重写为 ClickHouse 时,很难弄清楚这一点。我的 MySQL 查询看起来像这样......

SELECT COUNT(this), COUNT(that) FROM table WHERE something = x AND stamp BETWEEN startdate AND enddate

SELECT COUNT(this), COUNT(that) FROM table WHERE something = x AND stamp BETWEEN startdate AND enddate GROUP BY DAY(stamp)

SELECT COUNT(this), COUNT(that) FROM table WHERE something = x AND stamp BETWEEN startdate AND enddate GROUP BY MONTH(stamp)

SELECT COUNT(this), COUNT(that) FROM table WHERE something = x AND stamp BETWEEN startdate AND enddate GROUP BY …
Run Code Online (Sandbox Code Playgroud)

mysql group-by aggregate aggregate-functions clickhouse

2
推荐指数
1
解决办法
1万
查看次数

Kusto 按聚合排序,如计数

我是 Kusto/KQL 的新手,但在 T-SQL 方面经验丰富。我正在尝试获取异常列表,按类型对它们进行分组,添加计数,然后按该计数降序排列。在 SQL 中它将是:

SELECT Type, COUNT(Type)
FROM exceptions
GROUP BY Type
ORDER BY COUNT(Type) Desc
Run Code Online (Sandbox Code Playgroud)

除了那类以外,我什么都做到了。

exceptions
| summarize count() by type
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何按聚合排序。我试过了| sort by count() desc| sort by count() by type desc| as c | sort by c desc| extend c = summarize count() by type | sort by c desc

sorting aggregate kql azure-data-explorer

2
推荐指数
1
解决办法
3425
查看次数

Mochawesome with Cypress - 如何获得更高级别的聚合图表?

我刚刚开始将 mochawesome 与 Cypress (9.7) 一起使用。我们的测试结构基本上是许多规范文件,每个文件都遵循以下格式:

\n
describe(\'(A): description of this spec\', () => {\n  describe (\'(B): description of test abc\', () => {\n    before(() => {\n      // do specific set up bits for this test\n    })\n    it(\'(C): runs test abc\', ()\xc2\xa0=> {\n      // do actual test stuff\n    })\n  })\n})\n
Run Code Online (Sandbox Code Playgroud)\n

在每个规范文件中,将有一个“A”描述块,但可以有许多“B”级块(每个块都有一个“C”) - 这样做是因为之前的块每个“C”总是不同的 - 我不能使用 beforeEach。

\n

当我运行各种规格文件时,每个规格文件的结构都与上面类似,mochaewsome 输出大部分是正确的 - 我在“A”级别为每个规格文件获得一个可折叠块,每个文件在 B 级都有多个可折叠块,每个块都有测试信息符合 C 级预期。

\n

但是...圆形图表仅在 B 级显示。我所希望的是,可能有 A 级的聚合图表,以及所有 A 级块的进一步聚合图表。

\n

不确定我是否已经很好地解释了这一点(!),但希望有人理解,并可以提供建议?!

\n

aggregate cypress mochawesome

2
推荐指数
1
解决办法
1023
查看次数

如何获得忽略异常值的平均值?

说我有一个postgresql表,其中包含以下值:

id | value
----------
1  | 4
2  | 8
3  | 100
4  | 5
5  | 7
Run Code Online (Sandbox Code Playgroud)

如果我使用postgresql来计算平均值,它给我的平均值为24.8,因为100的高值对计算有很大的影响.事实上,我想在6左右找到一个平均值,并消除极端情况.

我正在寻找消除极端的方法,并希望这样做"统计上正确".极端无法修复.我不能说; 如果值超过X,则必须将其消除.

我一直在弯曲我的postgresql聚合函数,但不能把我的手指放在我正确使用的东西上.有什么建议?

postgresql statistics aggregate

1
推荐指数
2
解决办法
6246
查看次数

SQL CE DISTINCT集合

SQL CE是否有能力使用不同的聚合函数?我需要类似的东西

SELECT count(distinct date) FROM table
Run Code Online (Sandbox Code Playgroud)

这是简化的查询,我已经在原始查询中使用了GROUP BY。

sql aggregate distinct

1
推荐指数
1
解决办法
4221
查看次数