gpt4 book ai didi

python - 如何合并具有相同时间戳的行?

转载 作者:行者123 更新时间:2023-12-02 04:20:56 25 4
gpt4 key购买 nike

我正在尝试将具有相同时间戳的数据帧的所有行合并为一行。 df 为 5k x 20。

             A      B      ...
timestamp
11:00 NaN 10 ...
11:00 5 NaN ...
12:00 15 20 ...
... ... ...

按如下方式对 2 11:00 行进行分组

             A      B        ...
timestamp
11:00 5 10 ...
12:00 15 20 ...
... ... ...

如有任何帮助,我们将不胜感激。谢谢。

我已经尝试过

df.groupby( df.index ).sum()

最佳答案

您可以融化('unpivot')DataFrame,将其从宽格式转换为长格式,删除空值,然后通过groupby聚合。

import pandas as pd

df = pd.DataFrame({'timestamp' : ['11:00','11:00','12:00'],
'A' : [None,5,15],
'B' : [10,None,20]
})

A B timestamp
0 NaN 10 11:00
1 5 NaN 11:00
2 15 20 12:00

df2 = pd.melt(df, id_vars = 'timestamp') # specify the value_vars if needed

timestamp variable value
0 11:00 A NaN
1 11:00 A 5
2 12:00 A 15
3 11:00 B 10
4 11:00 B NaN
5 12:00 B 20

df2.dropna(inplace=True)
df3 = df2.groupby(['timestamp', 'variable']).sum()

value
timestamp variable
11:00 A 5
B 10
12:00 A 15
B 20

df3.unstack()

value
variable A B
timestamp
11:00 5 10
12:00 15 20

关于python - 如何合并具有相同时间戳的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30516528/

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