我想增加熊猫系列中的行数。
如果效率很低,这并不困难。
示例)
a = pd.Series([3,4,5])
b = pd.Series([1,2,3])
使用a和b,我想要以下结果。
pd.Series([3,4,4,5,5,5])
数字是b,值是a。
如果我使用熊猫,可以通过使用两个类似的系列来增加数量。 如果您知道如何解决此问题,请教。
答案 0 :(得分:3)
将numpy.repeat
与Series
构造函数一起使用,两个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
>>>