【发布时间】:2020-01-09 22:29:18
【问题描述】:
{'choice_0': {0: 52, 1: 26, 2: 100, 3: 2, 4: 53},
'choice_1': {0: 38, 1: 4, 2: 54, 3: 95, 4: 1},
'choice_2': {0: 12, 1: 82, 2: 25, 3: 1, 4: 47},
'choice_3': {0: 82, 1: 5, 2: 12, 3: 96, 4: 93},
'choice_4': {0: 33, 1: 11, 2: 27, 3: 32, 4: 26},
'choice_5': {0: 75, 1: 47, 2: 82, 3: 6, 4: 3},
'choice_6': {0: 64, 1: 38, 2: 10, 3: 40, 4: 46},
'choice_7': {0: 76, 1: 6, 2: 89, 3: 31, 4: 16},
'choice_8': {0: 10, 1: 66, 2: 80, 3: 9, 4: 42},
'choice_9': {0: 28, 1: 61, 2: 33, 3: 59, 4: 39},
'n_people': {0: 4, 1: 4, 2: 3, 3: 2, 4: 4}}
还有一个像这样的数组:
input_arr = (
np.array([[ 0, 52],
[ 1, 82],
[ 2, 27],
[ 3, 2],
[ 4, 53]]))
第一个元素是family_id=0,列“choice_0”=52
第二个元素是family_id=1,列“choice_2”=82
第三个元素是family_id=2,列“choice_4”=27
我想得到:
array([[ 0, 0],
[ 1, 2],
[ 2, 3],
[ 3, 0],
[ 4, 0])
逻辑是:
- 对于family_id =0,初始数组有一个52。我想收到一个0,因为它属于“choice_0”列。
- 对于family_id = 1,初始数组有一个82。我想收到一个2,因为它属于“choice_2”列。
注意:一行中的数字(family_id)不能重复。
我什至不知道标题是什么,随意更改它。
【问题讨论】:
-
它应该遵循什么规则/逻辑?不是很清楚
-
@NicolasGervais 我现在试着解释得更好一些。谢谢:)
-
如果有重复值,例如famility_id = 0,初始数组有1,应该选择哪一列?此外,对于数组中初始值为 27 的第 3 行,为什么映射值为 3? choice_3 似乎不包含 27。
-
另外,请给出一个带有真实值的示例数据框,而不是截图,因为使用图像很难构建测试数据集。
-
对于第 3 行,27 属于choice_4,该值应该是[2,4] 而不是[2,3]?
标签: python pandas numpy dictionary