个人(索引从 0 到 5)在两个位置之间进行选择:A 和 B。我的数据具有广泛的格式,其中包含因个人而异的特征 (ind_var) 和仅因位置而异的特征 (location_var)。
例如,我有:
In [281]:
df_reshape_test = pd.DataFrame( {'location' : ['A', 'A', 'A', 'B', 'B', 'B'], 'dist_to_A' : [0, 0, 0, 50, 50, 50], 'dist_to_B' : [50, 50, 50, 0, 0, 0], 'location_var': [10, 10, 10, 14, 14, 14], 'ind_var': [3, 8, 10, 1, 3, 4]})
df_reshape_test
Out[281]:
dist_to_A dist_to_B ind_var location location_var
0 0 50 3 A 10
1 0 50 8 A 10
2 0 50 10 A 10
3 50 0 1 B 14
4 50 0 3 B 14
5 50 0 4 B 14
变量“位置”是个人选择的。dist_to_A 是从个人选择的位置到位置 A 的距离(与 dist_to_B 相同)
我希望我的数据具有这种形式:
choice dist_S ind_var location location_var
0 1 0 3 A 10
0 0 50 3 B 14
1 1 0 8 A 10
1 0 50 8 B 14
2 1 0 10 A 10
2 0 50 10 B 14
3 0 50 1 A 10
3 1 0 1 B 14
4 0 50 3 A 10
4 1 0 3 B 14
5 0 50 4 A 10
5 1 0 4 B 14
其中choice == 1 表示个人选择了该位置,dist_S 是与所选位置的距离。
我阅读了有关.stack方法的信息,但不知道如何将其应用于这种情况。谢谢你的时间!
注意:这只是一个简单的例子。我正在寻找的数据集具有不同数量的位置和每个位置的个人数量,因此如果可能,我正在寻找一个灵活的解决方案