Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 将“If”样式条件应用于数据帧列_Arrays_Pandas_Dataframe - Fatal编程技术网

Arrays 将“If”样式条件应用于数据帧列

Arrays 将“If”样式条件应用于数据帧列,arrays,pandas,dataframe,Arrays,Pandas,Dataframe,我正在努力寻找将if类型逻辑应用于数据帧的最佳方法 我认为我一直在尝试将我提供的逻辑作为一个整体应用于数组,而不是数组中的值逐行应用。但我也尝试在没有列表理解或某种循环的情况下完成它,因为这将是我试图解释的几个不同的场景 我正在尝试填充一个新字段df['Summary Table'],然后我可以在以后为不同的聚合进行分组 我做的第一件事就是这样 tbl_scenarios =[ # Scenario 1: The town in a row is on the town list

我正在努力寻找将if类型逻辑应用于数据帧的最佳方法

我认为我一直在尝试将我提供的逻辑作为一个整体应用于数组,而不是数组中的值逐行应用。但我也尝试在没有列表理解或某种循环的情况下完成它,因为这将是我试图解释的几个不同的场景

我正在尝试填充一个新字段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为真,我希望它在 “区域”列,后缀为:“农村”

tbl_结果=[df['Town'],strdf['CNA']+:农村]

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

df['Summary Table'] = np.select(tbl_scenarios, tbl_results, default=0)
我得到了一个值错误,上面说的事实是不明确的,因为它在查看整个数组。然后,我尝试将以下内容作为列表中的参数:

np.城镇中的[Town]


但从表中看,这一逻辑似乎不起作用。有什么想法吗?

我很困惑。你的情况如何?预期的输出到底是什么?我认为问题在于城镇中的df['Town'],需要的是预期的输出将是一个新列,如果数据框中城镇行中的城镇在城镇列表中,该列将只显示城镇,但如果城镇列中的某一行显示'rural',则,它应该获取另一列区域的值,并将字符串值与“:Rural”连接起来