一个短的数据框,我想从现有的行创建新行。
它现在做的是,每行,每列乘以3到5之间的随机数:
import pandas as pd
import random
data = {'Price': [59,98,79],
'Stock': [53,60,60],
'Delivery': [11,7,6]}
df = pd.DataFrame(data)
for row in range(df.shape[0]):
new_row = round(df.loc[row] * random.randint(3,5))
new_row.name = 'new row'
df = df.append([new_row])
print (df)
Price Stock Delivery
0 59 53 11
1 98 60 7
2 79 60 6
new row 295 265 55
new row 294 180 21
new row 316 240 24
有没有可能每一行都有多个不同的随机数?例如:
the 1st row 3 cells multiple (random) [3,4,5]
the 2nd row 3 cells multiple (random) [4,4,3] etc?
3条答案
按热度按时间bxfogqkk1#
在for循环中将
random
更改为numpy
random.choice
n1bvdmb62#
使用
np.random.randint(3,6, size=3)
。实际上,你可以立即做到:wj8zmpe13#
你也可以独立地生成与
df
形状相同的乘法系数,然后将按元素相乘的df * mul
与原始df
合并:注意:这种方法避免了众所周知的慢
.append()
。基准测试:使用此方法几乎可以立即完成10,000行,而.append()
需要40秒!输出: