我需要把500多人的名单,然后把他们分成15人一组。分组应该是随机的,这样我们就不会以每个人的姓以“B”开头的分组结束。但我也需要尽可能平衡15国集团的性别平等。名单在a'学生.csv'具有此结构的文件:
Last, First, ID, Sport, Gender, INT
James, Frank, f99087, FOOT, m, I
Smith, Sally, f88329, SOC, f,
Cranston, Bill, f64928, ,m,
我在寻找熊猫的解决方案,但我的编码知识有限。到目前为止,我得到的代码只是对数据进行了一点探索。你知道吗
import pandas as pd
data = pd.read_csv('students.csv', index_col='ID')
print(data)
print(data.Gender.value_counts())
我要做的第一件事是过滤成两个列表,每个性别一个:
接下来,重新排列列表的顺序,以便更容易选择“随机”而实际上不必选择随机索引:
然后,选择元素,同时尽量与性别比例保持或多或少的一致:
这将确保每组的性别比例尽可能与原始样本相符。最后一组当然会比其他组小,并且会包含其他组的“剩余部分”。你知道吗
使用
pandas
的方法意味着由15个成员组成的小组。其余的在最后一组。性别比例的准确度和随机抽样法所允许的差不多。你知道吗将数据帧保存到文件:
相关问题 更多 >
编程相关推荐