gpt4 book ai didi

python - 根据另一列中的日期时间分组并连接多行?

转载 作者:行者123 更新时间:2023-11-30 21:52:41 24 4
gpt4 key购买 nike

df = pd.DataFrame(np.array([['a', 'a', 'b', 'b'], [1, 1, 2, 2], 
['k', 'l', 'm', 'n'], ['2015-08-01', '2015-06-01', '2019-11-30', '2020-01-05']]).T,
columns=['a', 'b', 'c', 'd'])

df['d'] = pd.to_datetime(df['d'])

df.groupby(['b']).agg({'a': ', '.join, 'c': ', '.join})

a c
b
1 a, a k, l
2 b, b m, n

期望的输出:

    a       c
b
1 a, a l, k
2 b, b m, n

我想根据旧日期连接字符串到新日期。

在所需的输出中,如果您看到 c 列,我们在第一行中有 l, k 而不是 k, l 这是因为如果您看到提供的日期时间(即 d 列) K = 2015-08-01 其中 L = 2015-06-01 这里 L 的日期时间最少,所以加入时它应该排在第一位。

最佳答案

几乎就在那里,只需在 groupby() 之前的 sort_values(...) 即可:

df=df.sort_values("d", axis=0)

df2=df.groupby(['b']).agg({'a': ', '.join, 'c': ', '.join})

输出:

      a     c
b
1 a, a l, k
2 b, b m, n

关于python - 根据另一列中的日期时间分组并连接多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59850116/

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