我有一组按姓名表示的男性和女性 worker 的工资数据。
Male Female Male_Wage Female_Wage
James Lori 8 9
Mike Nancy 10 8
Ron Cathy 11 12
Jon Ruth 15 9
Jason Jackie 10 10
在 pandas 中,我想在数据框中创建一个新列,显示收入最高的人的姓名。如果存在两者支付相同的情况,则值(value)应该相同。
Male Female Male_Wage Female_Wage Highest_Paid
James Lori 8 9 Lori
Mike Nancy 10 8 Mike
Ron Cathy 11 12 Cathy
Jon Ruth 15 9 Jon
Jason Jackie 10 10 Same
我已经能够添加一列并用值填充它,根据其他列计算值等,但无法根据实例中相同条件的另一列的值有条件地填充新列工资一样,给我带来了麻烦。我已经搜索了很多答案,但没有找到任何涵盖这种情况的所有要素的内容。
感谢您的帮助。
最佳答案
您可以使用loc
语句来做到这一点
df.loc[df['Male_Wage'] == df['Female_Wage'], 'Highest_Paid'] = 'Same'
df.loc[df['Male_Wage'] > df['Female_Wage'], 'Highest_Paid'] = df['Male']
df.loc[df['Male_Wage'] < df['Female_Wage'], 'Highest_Paid'] = df['Female']
关于python - 有条件地用 pandas 中的行值填充列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58676159/