如何简单地根据需要增加熊猫系列的元素?

时间:2019-05-15 06:15:30

标签: python pandas

我想增加熊猫系列中的行数。

如果效率很低,这并不困难。

示例)

a = pd.Series([3,4,5])
b = pd.Series([1,2,3])

使用a和b,我想要以下结果。

pd.Series([3,4,4,5,5,5])

数字是b,值是a。

如果我使用熊猫,可以通过使用两个类似的系列来增加数量。 如果您知道如何解决此问题,请教。

3 个答案:

答案 0 :(得分:3)

numpy.repeatSeries构造函数一起使用,两个Series仅需要相同的长度:

c = pd.Series(np.repeat(a.values, b))
#pandas 0.24+
#c = pd.Series(np.repeat(a.to_numpy(), b))
print (c)
0    3
1    4
2    4
3    5
4    5
5    5
dtype: int64

答案 1 :(得分:2)

或者,您也可以这样做:

a.loc[a.index.repeat(b)]
#for reseting index :-> a.loc[a.index.repeat(b)].reset_index(drop=True) 

0    3
1    4
1    4
2    5
2    5
2    5

答案 2 :(得分:2)

虽然不是最佳答案:

>>> pd.Series([i for x,y in zip(a,b) for i in [x]*y])
0    3
1    4
2    4
3    5
4    5
5    5
dtype: int64
>>> 
相关问题