数据框融化并保留索引

问题描述 投票:2回答:1

我有一个这样的数据框:

    df = pd.DataFrame(
        [
            ["True", "False"],
            ["True", "True"],
            ["False", "True"],

        ],
        index=["bob", "sue", "joe"],
        columns=["R1", "R2"],
    )

我想熔化df以便使用索引名,并用列名替换True,所以输出是这样的:

    df = pd.DataFrame(
        [
            ["bob", "R1"],
            ["sue", "R1"],
            ["sue", "R2"],
            ["joe", "R2"],
        ],
        columns=["Names", "Role"],
    )

我该如何实现?

python-3.x pandas dataframe replace melt
1个回答
2
投票

DataFrame.melt与首先将索引转换为列:

DataFrame.melt

然后按df = df.rename_axis('Names').reset_index().melt('Names', var_name='Role') 值过滤:

True

或:

df = df.loc[df['value'].map({'True':True, 'False':False}), ['Names','Role']]

df = df.loc[df['value'] == 'True', ['Names','Role']]
© www.soinside.com 2019 - 2024. All rights reserved.