使用 map 函数提取值

沉默猎人

你可以在下面看到我的数据集。我想转换此表并在一列 [Names] 中包含列的名称,具体取决于这些列是否具有某些值。

import pandas as pd
import numpy as np

data = { 
        'store_A': [100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 
        'store_B': [0,100,0,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 
        'store_C': [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 
        'store_D': [0,100,0,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 
        'store_E': [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 
        'store_F': [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 
        'store_G': [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 
        'store_H': [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 
        'store_I': [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 
        'store_J': [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 
        'store_K': [0,0,0,0,0,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100], 
        'store_L': [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 
        'store_M': [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 
        'store_N': [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 
        'store_O': [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 
        'store_P': [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 
        'store_Q': [100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100], 
        'store_R': [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 
        'store_S': [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 
        'store_T': [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 
        'store_U': [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 
        'store_other': [100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100], 
       }


df = pd.DataFrame(data, columns = ['store_A','store_B','store_C','store_D','store_E','store_F','store_G','store_H','store_I','store_J','store_K',
                'store_L','store_M','store_N','store_O','store_P','store_Q','store_R','store_S','store_T','store_U','store_other'])


df

最后,我需要一列包含上述列,请参见下图:

在此处输入图像描述

那么有人可以帮我解决这个问题吗?

瑞顺

您可以为每一行应用过滤器,并使用非零值连接每行列的列名:

df['Names'] = df.apply(lambda column: ','.join(df.columns[column != 0]), axis=1)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章