我试图替换一个数据框架的一列的值。列('female')只包含值'female'和'male'。
我尝试过以下方法:
w['female']['female']='1'
w['female']['male']='0'
但收到的是与之前结果完全相同的副本。
理想情况下,我希望得到类似于以下循环元素的输出。
if w['female'] =='female':
w['female'] = '1';
else:
w['female'] = '0';
我已经查看了gotchas文档(http://pandas.pydata.org/pandas-docs/stable/gotchas.html),但不明白为什么什么都没有发生。
任何帮助都将不胜感激。
你也可以使用apply和。get i.e.。
"菲玛"等于"菲玛"克里奥耳语(——“画”:0,可说是家常便饭”:1,.get):
w = pd.DataFrame({'female':['female','male','female']})
print(w)
Dataframe w:
female
0 female
1 male
2 female
使用apply替换字典中的值:
w['female'] = w['female'].apply({'male':0, 'female':1}.get)
print(w)
结果:
female
0 1
1 0
2 1
注意:如果数据帧中所有可能的列的值都是在字典else中定义的,那么apply with dictionary应该被使用,对于那些没有在字典中定义的列,它将为空。
你也可以使用apply和。get i.e.。
"菲玛"等于"菲玛"克里奥耳语(——“画”:0,可说是家常便饭”:1,.get):
w = pd.DataFrame({'female':['female','male','female']})
print(w)
Dataframe w:
female
0 female
1 male
2 female
使用apply替换字典中的值:
w['female'] = w['female'].apply({'male':0, 'female':1}.get)
print(w)
结果:
female
0 1
1 0
2 1
注意:如果数据帧中所有可能的列的值都是在字典else中定义的,那么apply with dictionary应该被使用,对于那些没有在字典中定义的列,它将为空。