【发布时间】:2019-07-17 19:38:03
【问题描述】:
我有一个包含观察数据的数据框:
import pandas as pd
d = {'humanID': [1, 1, 2,2,2,2 ,2,2,2,2], 'dogID':
[1,2,1,5,4,6,7,20,9,7],'month': [1,1,2,3,1,2,3,1,2,2]}
df = pd.DataFrame(data=d)
df 已关注
humanID dogID month
0 1 1 1
1 1 2 1
2 2 1 2
3 2 5 3
4 2 4 1
5 2 6 2
6 2 7 3
7 2 20 1
8 2 9 2
9 2 7 2
我们总共有两个human 和二十个dog,以上df 包含观察到的数据。例如:
第一行表示:human1 一月采用dog1
第二行表示:human1 一月采用dog2
第三行表示:human2 2 月采用dog1
================================================ ==========================
我的目标是为每个未出现在原始观察数据中的(human, month)随机生成two未观察数据。
喜欢human1January,他不收养狗[3,4,5,6,7,..20] 我想随机创建两个未观察到的样本(human, month) 三元组
humanID dogID month
1 20 1
1 10 1
但是,由于它出现在原始df中,因此不允许使用以下示例
humanID dogID month
1 2 1
对于human1,他在2月份没有任何活动,所以我们不需要对未观察到的数据进行采样。
对于human2,他有 1 月、2 月和 3 月的活动。因此,对于每个月,我们都希望随机创建未观察到的数据。例如,在一月份,human2 采用dog1、dog4 和god 20。两个随机未观测样本可以是
humanID dogID month
2 2 1
2 6 1
2 月和 3 月可使用相同的流程。
我想将所有未观察到的数据放在一个数据框中,例如关注unobserved
humanID dogID month
0 1 20 1
1 1 10 1
2 2 2 1
3 2 6 1
4 2 13 2
5 2 16 2
6 2 1 3
7 2 20 3
有什么快速的方法吗?
PS:这是一个初创公司的代码面试。
【问题讨论】:
标签: python-3.x pandas dataframe random sampling