首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何基于计数器列复制行

如何基于计数器列复制行
EN

Stack Overflow用户
提问于 2015-07-18 06:00:49
回答 2查看 2K关注 0票数 6

假设我有一个名为df的数据帧

代码语言:javascript
复制
x count 
d 2
e 3
f 2

Count将是计数器列和我希望它重复的次数。

我该如何扩展它才能使其成为

代码语言:javascript
复制
x count
d 2
d 2
e 3
e 3
e 3
f 2
f 2

我已经尝试过numpy.repeat(df,df.iloc‘’count‘),但它出错了

EN

回答 2

Stack Overflow用户

发布于 2015-07-18 06:22:50

您可以使用np.repeat()

代码语言:javascript
复制
import pandas as pd
import numpy as np

# your data
# ========================
df

   x  count
0  d      2
1  e      3
2  f      2

# processing
# ==================================
np.repeat(df.values, df['count'].values, axis=0)


array([['d', 2],
       ['d', 2],
       ['e', 3],
       ['e', 3],
       ['e', 3],
       ['f', 2],
       ['f', 2]], dtype=object)

pd.DataFrame(np.repeat(df.values, df['count'].values, axis=0), columns=['x', 'count'])

   x count
0  d     2
1  d     2
2  e     3
3  e     3
4  e     3
5  f     2
6  f     2
票数 10
EN

Stack Overflow用户

发布于 2017-09-08 22:45:42

您可以在repeat中使用.loc,如下所示

代码语言:javascript
复制
In [295]: df.loc[df.index.repeat(df['count'])].reset_index(drop=True)
Out[295]:
   x  count
0  d      2
1  d      2
2  e      3
3  e      3
4  e      3
5  f      2
6  f      2

或者,使用pd.Series.repeat,您可以

代码语言:javascript
复制
In [278]: df.set_index('x')['count'].repeat(df['count']).reset_index()
Out[278]:
   x  count
0  d      2
1  d      2
2  e      3
3  e      3
4  e      3
5  f      2
6  f      2
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31485361

复制
相关文章

相似问题

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