python pandas 如何根据条件修改行信息

问题遇到的现象和发生背景

img

问题相关代码,请勿粘贴截图

import pandas as pd

data=[['123456','男'],['456789','男'],['987456','女'],['123487','女']]
df=pd.DataFrame(data,columns=['学号','性别'])
print(df)

运行结果及报错内容

img

我的解答思路和尝试过的方法

请教如何根据所在行的性别条件,修改学号,达到以下效果

我想要达到的结果

img

import pandas as pd

data = [['123456', '男'], ['456789', '男'], ['987456', '女'], ['123487', '女']]
df = pd.DataFrame(data, columns=['学号', '性别'])
print(df)
df['学号'] = df['学号'].map(str) + '-' + df['性别'].map(str)  # 视情况,也可不加.map(str)
print(df)
"""
变化如下:
       学号 性别
0  123456  男
1  456789  男
2  987456  女
3  123487  女

         学号 性别
0  123456-男  男
1  456789-男  男
2  987456-女  女
3  123487-女  女
"""

感谢!