我一直在尝试迭代一个DataFrame或应用一个函数,以便基于DataFrame中另外两个列来更改DataFrame的特定列中的内容。在
我有一个df像:
df = pd.DataFrame({'Age_type' : pd.Series(['Adult','Adult','Child','Child']),
'Gender' : pd.Series(['Female','Male','Female','Female'])
})
Gender Age_type Group
0 Female Adult
1 Male Adult
2 Female Child
3 Female Child
我想为每个案例设置一个小组,有这样的想法:
^{pr2}$我尝试过使用.apply(函数),因为据我所知,在迭代DataFrame时,您永远不应该修改它(所以这会使for循环不再是一个选项?)。在
我试过:
def set_group(data):
gender = data['Gender']
age_type = data['Age_type']
if gender == 'Female' and age_type == 'Adult':
data['Group'] = 'Group A'
elif gender == 'Female' and age_type == 'Child':
data['Group'] = 'Group B'
elif gender == 'Male' and age_type == 'Adult':
data['Group'] = 'Group C'
elif gender == 'Male' and age_type == 'Child':
data['Group'] = 'Group D'
return None
df['Group'].apply(set_group)
但我总是犯这样的错误: TypeError:字符串索引必须是整数,而不是str
你知道如何迭代一个数据帧,读取一些列,并在此基础上为另一列设置值吗?在
谢谢!在
这个怎么样?在
试试这个:
相关问题 更多 >
编程相关推荐