gpt4 book ai didi

python - 以奇怪的方式对 Pandas 数据框进行排序和分组

转载 作者:行者123 更新时间:2023-12-05 02:27:23 25 4
gpt4 key购买 nike

列表 = [0, 3, 2, 1]

这是我拥有的 pandas 数据框。

<表类="s-表"><头>时间数据DMMA代码<正文>00 天 00:00:00第一层B10 天 00:00:00第二层S20 天 00:08:00第三层B30 天 00:16:00第 4 层S40 天 00:24:00第 5 层B50 天 00:53:00第 6 层S60 天 01:16:00Layer7B70 天 01:29:00Layer8S

这是我想要得到的最终结果。

<表类="s-表"><头>时间数据<正文>00 天 00:00:00 , 0 天 00:00:00第一层,第二层10 天 00:08:00 , 0 天 01:29:00Layer3 , Layer820 天 00:24:00 , 0 天 00:53:00Layer5 , Layer630 天 01:16:00 , 0 天 00:16:00Layer7 , Layer4

基本上,“List”中元素的索引是 DMMA CODE 为“B”的数据的索引,元素本身是 DMMA CODE 为“S”的数据的索引。

列表的第一个元素告诉“第一个 CODE:B 应该与第一个 CODE:S 分组”

列表的第二个元素表示“第二个 CODE:B 应该与第四个 CODE:S 组合在一起”等。

我不熟悉 pandas,甚至找不到解决这个问题的方法。

最佳答案

你的数据基本乱序了,我们重新排序一下:

info = [0, 3, 2, 1]
mask = df['DMMA CODE'].eq('S')
df.loc[mask] = df[mask].iloc[info].values

# Then we can get what you want fairly easily:
groups = df.groupby('DMMA CODE').cumcount()
out = df.groupby(groups).agg(list)
print(out)

输出:

                                 TIME              DATA DMMA CODE
0 [0 days 00:00:00, 0 days 00:00:00] [Layer1, Layer2] [B, S]
1 [0 days 00:08:00, 0 days 01:29:00] [Layer3, Layer8] [B, S]
2 [0 days 00:24:00, 0 days 00:53:00] [Layer5, Layer6] [B, S]
3 [0 days 01:16:00, 0 days 00:16:00] [Layer7, Layer4] [B, S]

关于python - 以奇怪的方式对 Pandas 数据框进行排序和分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73252746/

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