我一直在嘗試通過DataFrame或應用函數進行迭代,以更改基於其他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
而且我想設置一組爲每個個案,有這樣的想法:
if gender == 'Female' and age_type == 'Adult':
group = 'Group A'
elif gender == 'Female' and age_type == 'Child':
group = 'Group B'
elif gender == 'Male' and age_type == 'Adult':
group = 'Group C'
elif gender == 'Male' and age_type == 'Child':
group = 'Group D'
我曾嘗試。適用(功能)使用,因爲據我所知,你不應該修改一個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)
,但我不斷收到這樣的錯誤: 類型錯誤:字符串索引必須是整數,而不是str的
如何遍歷一個數據幀的任何想法,看了一些列,並在此基礎上,爲另一列設置值?
謝謝!
這個工程,所以如果有一個投票,請解釋。 – ivan7707
這工作完美(只需大寫字母的小調整)。謝謝! @ ivan7707 –