新的列添加到数据帧大熊猫当在条件下使用的列可以是可变的

时间:2019-01-31 20:06:05

标签: python pandas dataframe

我需要一个“状态”列,以显示关于该用户可能选项信息添加到我的熊猫DF的DF的支票多个列。我想我能做到这一点,如果列是静态的,而是一个新的工具带来的线到下一次它会在数据作为新列,将需要进行检查露面。我试图避免在特定工具的名称硬编码。

我想出一个办法来有条件地创建行之有效每个工具栏,但它会创建一个每个工具。在上述情况下,我需要一列而不是多列。

下面是我如何管理,以创建一个基于所有在数据帧的工具,新的列:

tools = unded[unded.columns[unded.columns.str.contains("tool")]]
undedtools = tools.columns.values.tolist()


for tool in undedtools:
    unded.loc[(unded[tool] == 'Y') & (unded['lines_down'] == 'N'), tool + '_format'] = 2
    unded.loc[(unded[tool]) == 0, tool + '_format'] = 3

此创建名为如“tool123_format”每个工具的柱。列得到了一些我用格式化的报告填充。所以,现在,我有这样的一列每个工具,我需要检查所有这些列和报告上的状态。

我希望它报告类似“tool123和tool456是开放的”,如果它在每个工具的格式栏找到2。然后下一行可能没有开放工具所以它会说:“所有的路径都关闭。升级到英”

我如何获得工具名称有条件成数据帧中的每一行这个“状态”列?我以前在SQL中拥有完整的内容,但是每次我们添加新工具时,我都厌倦了在CASE WHEN语句中添加数十行新内容。

0 个答案:

没有答案