python - 将组分配给值
问题描述
我有一个带有几列(20)和几行(16404)的熊猫数据框。其中一列是 ['age']。我希望能够在某个年龄类别上绘制其他指标,例如 ['Income']。例如:所有 20 岁以下的男性或 20 至 40 岁的女性的收入是多少。
我尝试了这种情况:
for i in range(len(df['age'])):
if df['age'][i]<25 and df['Gender'][i]==1:
df['group'][i]=1
但我收到以下错误:The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()
您能否告诉我如何根据这些条件将组分配给一行?
所有系列都是int64
最好的
解决方案
- 注意
(df['age'] < 25) & (df['Gender'] == 1)
我使用了一个&
而不是and
. - 如果你这样做了,你正在评估一整列并为每一行分配一整列,这是非常浪费的。
这样做以获得布尔值
df['group'] = df['age'].lt(25) & df['Gender'].eq(1)
您可以将其转换为整数0
,并且可以1
通过多种方式
df['group'] = df['group'].astype(int)
推荐阅读
- c# - 为什么我不能将字符串 person 返回到 main 中?它给了我一个错误,说字符串“person”不在上下文中,即使我返回了它?
- python - 查找跟随另一个字符的最常见的出现
- c# - 基于对象属性的颜色特定树视图项
- java - 如何使用 setCellFactory 根据对象属性的内容定义单元格的内容?
- python - 按数字访问熊猫数据框最右边的两列
- android - 使用过滤器创建视图
- ruby-on-rails - Rails:对 DISTINCT ON * ORDER 返回的结果进行排序
- python-3.x - Pexpect - 从不断输出的 shell 中读取
- angular - Angular 如何检测变化并更新组件视图?
- javascript - 如何在 Angular 8 中启用的按钮上调用函数?