我有一个像这样的熊猫数据框:
如果 Cluster==1 或 Cluster==2,我如何计算特定列的平均值(最小值/最大值、中值)?
谢谢!
原文由 Keithx 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您的意思是仅在 Cluster 为 1 或 2 的情况下取平均值,那么此处的其他答案可以解决您的问题。如果你想对 Cluster 的每个值取一个单独的平均值,你可以使用 pandas 的聚合函数,包括 groupyby
和 agg
:
df.groupby("Cluster").mean()
是最简单的,将采用所有列的方法,按集群分组。
df.groupby("Cluster").agg({"duration" : np.mean})
是一个示例,其中您仅取一个特定列的平均值,按集群分组。您还可以使用 np.min
、 np.max
、 np.median
等。
groupby
方法产生一个 GroupBy
对象,它有点像但又不像 DataFrame
。将其视为 DataFrame
分组,等待对其应用聚合。 GroupBy
对象具有适用于所有列的简单内置聚合函数(在第一个示例中为 mean()
),还有一个更通用的聚合函数( agg()
在第二个示例中),您可以使用它以多种方式应用特定功能。使用它的一种方法是传递 dict
键控到函数的列名,因此特定函数可以应用于特定列。
原文由 sparc_spread 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
1 回答2.5k 阅读✓ 已解决
2 回答865 阅读✓ 已解决
您可以使用以下方法创建仅包含相关行的新 df:
为了计算特定列的平均值,您可以: