【问题标题】:Use column names as values in pandas depending on whether value is true or false根据值是 true 还是 false 使用列名作为 pandas 中的值
【发布时间】:2022-11-17 22:14:38
【问题描述】:

我有一个 df 看起来像这样

   500  600  700  800
0   Tr  Fls  Fls  Fls
1   Tr  Tr   Tr   Fls
2 ...

我想把它变成这个

   Value
0  500
1  500
1  600
1  700
2 ....

我该怎么做呢?

【问题讨论】:

    标签: pandas


    【解决方案1】:

    例子

    data = {'500': {0: 'Tr', 1: 'Tr'},
            '600': {0: 'Fls', 1: 'Tr'},
            '700': {0: 'Fls', 1: 'Tr'},
            '800': {0: 'Fls', 1: 'Fls'}}
    df = pd.DataFrame(data)
    

    输出(df):

        500 600 700 800
    0   Tr  Fls Fls Fls
    1   Tr  Tr  Tr  Fls
    

    代码

    df 值为 'Tr' 时:

    df[df=='Tr'].stack().reset_index(level=1)['level_1'].to_frame('Value')
    

    结果:

        Value
    0   500
    1   500
    1   600
    1   700
    

    【讨论】:

    • 完美运行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-04
    • 2019-03-24
    • 2023-03-29
    • 2014-03-23
    • 1970-01-01
    • 2016-12-02
    • 2023-03-02
    相关资源
    最近更新 更多