首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将具有相似最后一列值的相邻NumPy行合并为新行?

如何将具有相似最后一列值的相邻NumPy行合并为新行?
EN

Stack Overflow用户
提问于 2021-11-15 02:10:52
回答 1查看 43关注 0票数 0

你是如何解决这个问题的?我有30行数组,有列( seq,high,low,statues),目标是合并相似的行,但仅当它们在seq中彼此相邻时。新行将具有最高读数的最大值和最低读数的最小值,并且雕像将与类似行相同。

例如,如果行0的状态为“==”,而行1的状态为“==”,

区块引用

我们不合并它,我们只是把它移到新的列表中。但是,如果第0行和第1行和第2行具有相同的平衡状态,则将新列追加到新列表中,其中seq为1,high = max为2的高值,low为mini为2的low值,以及statues我尝试使用if语句,但如果在arow中有20个有说服力的"balances“,则语句会非常长

序列、高、低、状态

0,55,53,平衡

1,53.75,51,非平衡

2,52.5,51.25,平衡

3,53,50.5,平衡

4,51.5,49.75,平衡5,51,49.25,非平衡6,50.25,49.25,非平衡7,49.25,48.75,48.75,非平衡8,48.75,47.25,平衡9,47.5,45.25,平衡10,47,46,非平衡11,46.75,44,平衡12,45.25,43.75,非平衡13,44.25,42.25,42.25,非平衡14,42.75,41.5,平衡15,44.25,42.5,平衡16,44.25,42.25,非平衡17,46,43.5,平衡18,46.75,45.25,非平衡19,46.25,45,平衡20,46.45,44.25,21,44,43,平衡22,43.5,42.25,非23,44.25,42.5,25非平衡24,43.75,41.5,平衡25,41.5,39.5,非平衡26,42.5,40.25,非平衡27,42.75,40.75,非平衡28,43.75,41.75,平衡29,42,39.5,平衡30,40.5,39.25,平衡

这是所需的输出序号,高,低,状态0,55,53,平衡1,53.75,51,非平衡3,53,49.75,平衡4,51,48.75,非平衡5,48.75,45.25,平衡6,47,46,非平衡7,46.75,44,平衡8,45.25,42.25,非平衡9,44.25,51.5,平衡10,44.25,42.25,非平衡11,46,43.5,平衡12,46.75,45.25,非平衡13,46.5,43,平衡14,44.25,42.25,非平衡15,43.75,41.5,16,42.75,39.5,非平衡17,43.75,39.25,平衡

original data what i am hopping to get

EN

回答 1

Stack Overflow用户

发布于 2021-11-19 18:16:49

你是如何解决这个问题的?

一种方法是从数组创建一个DataFrame (比如df),然后使用itertools.groupby合并具有相同状态的行。

代码语言:javascript
复制
from itertools import groupby
d = [(lambda dfr: (max(dfr['high']), min(dfr['low']), s))(pandas.DataFrame(list(r)))
     for s, r in groupby(df.itertuples(False), lambda a: a.statuse)]
# if you want a NumPy array:
a = np.array(d, dtype=[('high','f'),('low','f'),('statuse','O')])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69968775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档