gpt4 book ai didi

python - 基于列名的 Pandas 数据框条件均值

转载 作者:太空狗 更新时间:2023-10-29 17:24:04 25 4
gpt4 key购买 nike

从数据框样本开始解释是最容易的:

    TimeStamp   382.098     382.461     383.185     383.548
10:28:00 0.012448 0.012362 0.0124485 0.012362
10:30:00 0.0124135 0.0123965 0.0124135 0.012431
10:32:00 0.0551035 0.0551725 0.055931 0.0563105
10:34:00 0.055586 0.0557245 0.056655 0.0569485
10:36:00 0.055586 0.055776 0.0568105 0.057362

我希望我的输出是:

    TimeStamp   382         383
10:28:00 0.012405 0.01240525
10:30:00 0.012405 0.01242225
10:32:00 0.05513 0.05612075
10:34:00 0.05565525 0.05680175
10:36:00 0.055681 0.05708625

因此,我想查看列名称值,如果它们在整数方面都相同,我希望输出 col 具有每个时间索引值的平均值。

我的想法是使用 df.round 将列标题四舍五入为最接近的整数,然后使用 .mean() 以某种方式对相同的列标题应用 axis = 0 上的平均值。但是,我在数据帧索引类型上使用 round 函数时出错。

编辑:根据答案,我使用了

df.rename(columns=dict(zip(df.columns[0:], df.columns[0:]\
.values.astype(float).round().astype(str))),inplace=True)
df = df.groupby(df.columns[0:], axis=1).mean()

它弄乱了列名和值,而不是根据列名给我平均值...不知道为什么!

最佳答案

使用 groupby 沿第一轴和 lambda

df.set_index('TimeStamp', inplace=True)
df.groupby(by=lambda x: int(x.split('.')[0]), axis=1).mean()

382 383
TimeStamp
10:28:00 0.012405 0.012405
10:30:00 0.012405 0.012422
10:32:00 0.055138 0.056121
10:34:00 0.055655 0.056802
10:36:00 0.055681 0.057086

关于python - 基于列名的 Pandas 数据框条件均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46760083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com