在数据帧的每一行中应用随机分布

时间:2018-06-20 02:42:37

标签: pandas for-loop random scipy poisson

我有以下数据框

import numpy as np
import pandas as pd
import scipy as sc
import scipy.stats as sct    
d= {'col1': [1, 2,5,0.6], 'col2': [3, 4,1,0.8]}
df = pd. DataFrame(data=d)

我想在该数据框中添加两个新列,但是两个新列的元素是 col1 col2 的随机泊松分布 我使用以下代码生成了新列( col3和col4 )。

df ['col3']  = int(sct.poisson.rvs(df.col1,size=1))
df ['col4']  = int(sct.poisson.rvs(df.col2,size=1))

这是我的数据框的壁橱示例,它很大,包含3,800,000行。 我可以使用for循环生成它。我花了很长时间。

如何在不使用循环的情况下基于数据帧生成随机泊松分布? 谢谢

Zep

1 个答案:

答案 0 :(得分:2)

尝试仅使用:

df['col3'] = sct.poisson.rvs(df.col1)
df['col4'] = sct.poisson.rvs(df.col2)