首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于列值重复数据帧的行

基于列值重复数据帧的行
EN

Stack Overflow用户
提问于 2018-10-17 17:54:32
回答 1查看 37关注 0票数 0

我有这样一个数据框架:

代码语言:javascript
复制
df1 = pd.DataFrame({'a': [1,2],
                    'b': [3,4],
                    'c': [6,5]})
  df1
Out[150]: 
   a  b  c
0  1  3  6
1  2  4  5

现在,我想创建一个df,它根据col和c+ 1之间的差异来重复每一行。因此,对于第一行,b和c之间的差异是6-3 = 3。我想重复这一行的3+1=4次数。同样,对于第二行,差异是5-4 = 1,所以我想重复它1+1=2次。D列的值从min(b)增加到b与c之间的差(即6- 3 =3,因此从3->6)。所以我想得到这个df:

代码语言:javascript
复制
  a  b  c d
0 1  3  6 3
0 1  3  6 4
0 1  3  6 5
0 1  3  6 6
1 2  4  5 4
1 2  4  5 5
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-17 17:57:46

使用reindex + repeat执行此操作,然后使用groupby cumcount分配新值d

代码语言:javascript
复制
df1.reindex(df1.index.repeat(df1.eval('c-b').add(1))).\
      assign(d=lambda x : x.c-x.groupby('a').cumcount(ascending=False))
Out[572]: 
   a  b  c  d
0  1  3  6  3
0  1  3  6  4
0  1  3  6  5
0  1  3  6  6
1  2  4  5  4
1  2  4  5  5
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52860911

复制
相关文章

相似问题

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