首页 > 解决方案 > 将组分配给值

问题描述

我有一个带有几列(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

最好的

标签: pythonpandasdataframe

解决方案


  1. 注意(df['age'] < 25) & (df['Gender'] == 1) 我使用了一个&而不是and.
  2. 如果你这样做了,你正在评估一整列并为每一行分配一整列,这是非常浪费的。

这样做以获得布尔值

df['group'] = df['age'].lt(25) & df['Gender'].eq(1)

您可以将其转换为整数0,并且可以1通过多种方式

df['group'] = df['group'].astype(int)

推荐阅读