将“如果”样式条件应用于Pandas数据框列

时间:2020-02-27 11:08:33

标签: arrays pandas dataframe

我正在努力寻找将类型逻辑应用于熊猫数据框的最佳方法。

我认为我一直在做的是尝试将我提供的逻辑应用于整个数组,而不是逐行地对数组中的值进行应用。但是我也尝试不使用列表理解或某种循环,因为这是我要考虑的几种不同情况...

我正在尝试填充一个新字段df ['Summary Table'],然后我可以对其进行分组,以便以后进行不同的聚合。

我尝试的第一件事就是这样


tbl_scenarios =[

    # Scenario 1: The town in a row is on the town list
    ((df['Town'] in towns) == True),

    # Scenario 2: If the value in the town column is 'Rural'
    (df['Town'] == 'Rural')

]

以下是我可能的结果列表。我希望它只返回它在df ['Town']中找到的值 如果它在方案1的列表中,并且如果方案2为true,我希望它返回 后缀为“ Area”的“ Area”列:“ Rural”

tbl_results = [df['Town'], str(df['CNA']) + ": Rural"]

下面,我正在尝试根据场景从结果列表中选择正确的结果

df['Summary Table'] = np.select(tbl_scenarios, tbl_results, default=0)

我收到以上所述的值错误,因为事实是模棱两可的(因为它正在查看整个数组)。然后,我尝试使用以下方法作为列表中的参数:

(np.where(df['Town'])in towns)

但是看着表,看起来这种逻辑似乎没有用。有什么想法吗?

0 个答案:

没有答案