python - Pandas 过滤 float 到数字

标签 python pandas dataframe mean pandas-groupby

我正在使用 Pandas 来分析我的数据。我有这个由 elapsed_seconds 和 m(幅度)组成的数据框。有没有办法让我按 float (elapsed_seconds)的五位数字进行分组并找到 m 的平均值?

示例:

elapsed_seconds,m
10769.001,0.373637934043
10769.027,0.373403294813
10769.041,0.373069383556
10769.061,0.391354911476
10769.081,0.381280413801

我需要的是:

elapsed_seconds,m
10769,0.3785491875378

0.3785491875378 是 0.373637934043、0.373403294813、0.373069383556、0.391354911476 和 0.381280413801 的平均值

我将感谢所有反馈和评论。谢谢。

最佳答案

您可以将float列转换为int,然后groupby并聚合mean:

df = df.groupby(df['elapsed_seconds'].astype(int))['m'].mean().reset_index()
print (df)
   elapsed_seconds         m
0            10769  0.378549

关于python - Pandas 过滤 float 到数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46586962/

相关文章:

Python:RuntimeError 是否可以接受一般用途?

python - 变量在 if 语句中被覆盖

Python:如何获得每瞬间的毫秒数

python - 使用 bool 选择选择一个dataframe,然后提取某一列对应的值

python - 检查值是否在 pandas.DataFrame 的列列表中

python - 如果条件不适用于 Titanic Kaggle 数据集

python - 选择至少一列中的值为负数的行

Python:如何计算创建的对象数?

python - 如何使用 Pandas 将二维表 (DataFrame) 反转为一维列表?

python - 如何选择不同周之间的数据并将它们分组以将按周切片的 DataFrame 存储在数组中?,