【发布时间】:2020-02-14 20:34:43
【问题描述】:
如何生成具有与输入 df 相同协方差和均值的随机值的 df?
我有一个输入数据框:“my_input_df”,size= (240, 8) 我想要一个大小为 (10,000 , 8) 的输出数据帧“my_output_df”,其中 10,000 行中的每一行都是相应列的随机抽取,例如 "my_output_df" 的 cov 和均值与 “my_input_df”。
即:
my_input_df:
A B C D
a1 b1 c1 d1
a2 b2 c2 d2
a3 b3 c3 d3
....
a240 b240 c240 d240
my_output_df:
A B C D
rand_a1 rand_b1 rand_c1 rand_d1
rand_a2 rand_b2 rand_c2 rand_d2
rand_a3 rand_b3 rand_c3 rand_d3
...
rand_a10000 rand_b10000 rand_c10000 rand_d10000
My_ouput_df 每列必须有随机值,满足:
my_output_df.cov() = my_input_df.cov()
还有:
mean of my_output_df['A'] = mean of my_input_df['A']
mean of my_output_df['B'] = mean of my_input_df['B']
mean of my_output_df['C'] = mean of my_input_df['C']
.... Etc
我怀疑它与 numpy.random.multivariate_normal 有关,但不是 让我清楚如何在数据框中使用它。
【问题讨论】:
-
查看 Cholesky 分解。这还不是 Python 问题——仍然是统计数据。
-
对不起,我不知道怎么用 Python 写,这正是我的问题! numpy.random.multivariate_normal 可以用于数据帧吗?
-
您可以轻松地将数据帧转换为 numpy 数组。这个功能能解决你的问题吗?
标签: python random correlation