我有一个用那里的名字表示的男女工人的工资数据集。
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
在熊猫中,我想在数据框中创建一个新列,以显示收入最高的人员的姓名。如果存在双方支付相同的条件,则该值应为Same。
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
我已经能够添加一列并为其填充值,基于其他列等计算值,但是无法根据实例中条件相同的另一列的值有条件地填充新列工资都一样给我带来麻烦。我已经搜索了相当多的答案,却没有发现任何涵盖这种情况所有要素的内容。
感谢您的帮助。
答案 0 :(得分:0)
np.select
:我们可以指定条件,并根据这些条件获得Male
或Female
的值,否则获得default='Same'
conditions = [
df['Male_Wage'] > df['Female_Wage'],
df['Female_Wage'] > df['Male_Wage']
]
choices = [df['Male'], df['Female']]
df['Highest_Paid'] = np.select(conditions, choices, default='Same')
Male Female Male_Wage Female_Wage Highest_Paid
0 James Lori 8 9 Lori
1 Mike Nancy 10 8 Mike
2 Ron Cathy 11 12 Cathy
3 Jon Ruth 15 9 Jon
4 Jason Jackie 10 10 Same
np.where
+ loc
使用np.where
和.loc
有条件地分配正确的值:
df['Highest_Paid'] = np.where(df['Male_Wage'] > df['Female_Wage'],
df['Male'],
df['Female'])
df.loc[df['Male_Wage'] == df['Female_Wage'], 'Highest_Paid'] = 'Same'
Male Female Male_Wage Female_Wage Highest_Paid
0 James Lori 8 9 Lori
1 Mike Nancy 10 8 Mike
2 Ron Cathy 11 12 Cathy
3 Jon Ruth 15 9 Jon
4 Jason Jackie 10 10 Same
答案 1 :(得分:0)
您可以使用import seaborn
import spacy
dots = seaborn.load_dataset("dots")
dots.head()
语句
loc