假设我有一个名为df的数据帧
x count
d 2
e 3
f 2Count将是计数器列和我希望它重复的次数。
我该如何扩展它才能使其成为
x count
d 2
d 2
e 3
e 3
e 3
f 2
f 2我已经尝试过numpy.repeat(df,df.iloc‘’count‘),但它出错了
发布于 2015-07-18 06:22:50
您可以使用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发布于 2017-09-08 22:45:42
您可以在repeat中使用.loc,如下所示
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,您可以
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 2https://stackoverflow.com/questions/31485361
复制相似问题