我有一个如下所示的数据框:
df_dict = {'FamID' : [1, 2], 'Person_1' : ['Husband', 'Granpa'] , 'Person_2' : ['Wife', 'Grandson'], 'Higher_income' : [1, 0]}
df = pd.DataFrame(df_dict)
df = df.set_index('FamID')
它比较家庭成员之间的收入。因此,对于 Higher_venue
列,1
表示 Person_1
收入较高,0
表示 Person_2
> 是的。
如何堆叠此数据框以使结果看起来像:
最佳答案
对于您的数据:
s = (df_tmp.filter(like='Person').stack()
.reset_index(level=-1, drop=True)
.reset_index(name='Person')
)
s.loc[::2, 'Higher_income'] = df_tmp.Higher_income.values
s.loc[1::2,'Higher_income'] = 1 - df_tmp.Higher_income.values
输出:
FamID Person Higher_income
0 1 Husband 1.0
1 1 Wife 0.0
2 2 Granpa 0.0
3 2 Grandson 1.0
关于python - 如何堆叠这样的配对数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61147568/