arrays - 将“If”样式条件应用于 Pandas 数据框列
问题描述
我正在努力寻找将 if 类型逻辑应用于 pandas 数据帧的最佳方法。
我认为我一直在做的是尝试将我提供的逻辑应用到整个数组,而不是逐行应用数组中的值。但我也试图在没有列表理解或某种循环的情况下做到这一点,因为这将是我试图解释的几个不同的场景......
我正在尝试填充一个新字段 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')
]
以下是我的可能结果列表。如果它在场景 1 的列表中,我希望它只返回它在 df['Town'] 中找到的值,如果场景 2 为真,我希望它返回带有后缀“的“区域”列中的值“: '乡村的”
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)
但看看表格,看起来这个逻辑并不奏效。有任何想法吗?
解决方案
推荐阅读
- python - DatetimeField 和 strftime 的问题
- c# - Autodesk Inventor 附加模块被阻止
- javascript - 从挂载函数内部调用 Vue 方法
- c++ - 如何在其他线程等待时阻塞线程
- php - 在 apache tomcat 上托管 Laravel,路由无法正常工作
- ruby-on-rails - 使用rails在html表中添加多个json响应
- java - entityName_ 无法解析为变量,eclipse ide 中的错误消息?
- java - ResultSet 到 JTable 在其中一列上产生一个布尔值
- php - 复制失败后更改文件权限
- android - 我们如何设置文本以在布局中包含按钮