[英]How to return unique pairs from a dataframe based on another column's values?
[英]How to return a value in a column based on another's dataframe's values
我正在嘗試根據另一個數據框計算 dataframe 中的列。 它用於計算人力資源工資單的資歷獎金。
這兩個數據框是:
df1 = 人數
peopleID peopleSeniority
1 2
2 6
3 12
4 30
df2 = seniority_bonus
seniority seniorityBonus
5 500
10 1000
15 2000
20 3000
我想寫一個腳本,根據 df1 人的資歷返回 df2 資歷獎金。 會做的事情:如果 df1['people seniority'] > df2['seniority'] >, df2['senioritybonus'] 如果 df1 年資 > 5, 500 如果 df1 年資 > 10, 2000...
我試過使用查詢但它不起作用,我不知道如何編寫一個能夠進行計算的循環。
有人會有想法嗎?
如果獎金總是每五年增加一次,那就更容易了。 向 df1 添加一列,然后在該列上與 df2 合並
df1['seniority'] = (df1.peopleSeniority // 5) *5
df1 = df1.merge(df2, on='seniority')
編輯
如果括號之間的年份增量不是偶數,也不是線性的,也不是任何其他代數 function,那么您可以使用pd.cut()
對每個人的資歷進行分類。
df1['seniority_bonus'] = pd.cut(df.peopleSeniority,
bins=[0, 5, 8, 11, 15, 21, 30], right=False, labels=[0, 500, 1000, 1500, 2000, 2500])
請注意標簽是如何比箱子少一件物品的。 這是因為對於 7 integer 列表,您只能構建 6 個類別(不會有 30-infinite 的類別)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.