需要在保持熊猫或/和python中的顺序的同时对字母序列进行分组
Posted
技术标签:
【中文标题】需要在保持熊猫或/和python中的顺序的同时对字母序列进行分组【英文标题】:Need to group sequence of letters while keeping the order in pandas or/and python 【发布时间】:2018-05-24 02:30:49 【问题描述】:我有一个数据框:
row1 col1 col2
1 U 1
2 U 1
3 U 1
4 D 1
5 D 1
6 U 1
7 U 1
When I did groupby sum I got :
col1 col2
1 U 5
2 D 2
But what I want is :
col1 col2
1 U 3
2 D 2
3 U 2
有人回答了类似的问题。但是使用oracle sql。我只有 pandas 和 python 可用。
Group rows Keeping the Order of values done with sql
我怎样才能获得输出。
【问题讨论】:
不是图片,你把同样的贴在这里怎么样?? 欢迎来到 SO。在您在这里写更多内容之前,请仔细阅读:***.com/help/asking @Super Programmer,没有图片在熊猫中不起作用,人们倾向于复制您的数据并研究解决方案,因为您是会员,因为今天我更新了问题。下次添加文字,我们不要图片。 【参考方案1】:通过检查第一行是否不等于第二行来进行分组。即
df = pd.DataFrame('col1':['U','U','D','U','U'],'col2':[3,1,2,1,1])
mask = df['col1'].ne(df['col1'].shift()).cumsum()
ndf = df.groupby(mask).agg('col1':'first','col2':'sum')
col1 col2
col1
1 U 4
2 D 2
3 U 2
【讨论】:
以上是关于需要在保持熊猫或/和python中的顺序的同时对字母序列进行分组的主要内容,如果未能解决你的问题,请参考以下文章