Arrays 将“If”样式条件应用于数据帧列
我正在努力寻找将if类型逻辑应用于数据帧的最佳方法 我认为我一直在尝试将我提供的逻辑作为一个整体应用于数组,而不是数组中的值逐行应用。但我也尝试在没有列表理解或某种循环的情况下完成它,因为这将是我试图解释的几个不同的场景 我正在尝试填充一个新字段df['Summary Table'],然后我可以在以后为不同的聚合进行分组 我做的第一件事就是这样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
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”连接起来