如何基于计数器列复制行

Car*_*hou 5 python expand dataframe pandas

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

x count 
d 2
e 3
f 2
Run Code Online (Sandbox Code Playgroud)

计数将是计数器列和#次我希望它重复.

我将如何扩展它来实现它

x count
d 2
d 2
e 3
e 3
e 3
f 2
f 2
Run Code Online (Sandbox Code Playgroud)

我已经尝试过numpy.repeat(df,df.iloc ['count'])并且它出错了

Jia*_* Li 10

您可以使用 np.repeat()

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
Run Code Online (Sandbox Code Playgroud)