python - 如何堆叠这样的配对数据结构?

标签 python pandas dataframe

我有一个如下所示的数据框:

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 > 是的。

如何堆叠此数据框以使结果看起来像:

enter image description here

最佳答案

对于您的数据:

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/

相关文章:

python - df.mean() 和 df ['column' ].mean() 结果的差异

python - Pandas get_dummies 为同一特征生成多个列

python - 列值的总和等于

python - 如何在每个数据框列旁边插入新列

Python 脚本在终端和重定向到文件之间的输出不同

python - matplotlib - 在图例中包装文本

python - 过滤异常和复杂的数据集

python - 尝试在 DF 的切片副本上设置值

r - 将函数应用于 R 中的不同 data.frames

python - 将单列数据帧合并到另一个数据帧,而无需任何公共(public)键