pandas 根据相同的时间戳计算中值
pandas calculating median values based on the same time stamps
我想根据与 Pandas 相同的时间戳计算数据的中值。
我的部分数据框示例如下所示
timestamp
data
8/2/2021 16:11:34
30
8/2/2021 16:11:34
32
8/2/2021 16:11:34
50
10/12/2021 19:25:17
40
10/12/2021 19:25:17
50
10/12/2021 19:25:17
60
我希望这个 df 看起来像这样:
timestamp
data
median
8/2/2021 16:11:34
30
32
8/2/2021 16:11:34
32
32
8/2/2021 16:11:34
50
32
10/12/2021 19:25:17
40
50
10/12/2021 19:25:17
50
50
10/12/2021 19:25:17
60
50
我正在考虑创建一个新列并创建一个 for 循环
将相同时间戳的数据收集到数组中然后计算,
但也认为计算时间可能太长(数据记录在 30,000 左右)
寻找简单的解决方案但找不到解决方案。
任何建议将不胜感激。
一种选择是在 groupby.transform
中调用 median
。它 returns 具有与 df
相同索引的系列,其中填充了每个组的转换中值。
df['median'] = df.groupby('timestamp').transform('median')
输出:
timestamp data median
0 8/2/2021 16:11:34 30 32.0
1 8/2/2021 16:11:34 32 32.0
2 8/2/2021 16:11:34 50 32.0
3 10/12/2021 19:25:17 40 50.0
4 10/12/2021 19:25:17 50 50.0
5 10/12/2021 19:25:17 60 50.0
我想根据与 Pandas 相同的时间戳计算数据的中值。
我的部分数据框示例如下所示
timestamp | data |
---|---|
8/2/2021 16:11:34 | 30 |
8/2/2021 16:11:34 | 32 |
8/2/2021 16:11:34 | 50 |
10/12/2021 19:25:17 | 40 |
10/12/2021 19:25:17 | 50 |
10/12/2021 19:25:17 | 60 |
我希望这个 df 看起来像这样:
timestamp | data | median |
---|---|---|
8/2/2021 16:11:34 | 30 | 32 |
8/2/2021 16:11:34 | 32 | 32 |
8/2/2021 16:11:34 | 50 | 32 |
10/12/2021 19:25:17 | 40 | 50 |
10/12/2021 19:25:17 | 50 | 50 |
10/12/2021 19:25:17 | 60 | 50 |
我正在考虑创建一个新列并创建一个 for 循环 将相同时间戳的数据收集到数组中然后计算, 但也认为计算时间可能太长(数据记录在 30,000 左右) 寻找简单的解决方案但找不到解决方案。 任何建议将不胜感激。
一种选择是在 groupby.transform
中调用 median
。它 returns 具有与 df
相同索引的系列,其中填充了每个组的转换中值。
df['median'] = df.groupby('timestamp').transform('median')
输出:
timestamp data median
0 8/2/2021 16:11:34 30 32.0
1 8/2/2021 16:11:34 32 32.0
2 8/2/2021 16:11:34 50 32.0
3 10/12/2021 19:25:17 40 50.0
4 10/12/2021 19:25:17 50 50.0
5 10/12/2021 19:25:17 60 50.0