亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何根據新列的條件生成值?

如何根據新列的條件生成值?

萬千封印 2023-08-22 14:47:56
我有以下數據框:Hotel_id    Month_Year      Chef_Id  Chef_is_masterchef  Transition2400188     February-2018   4597566     1                    02400188     March-2018      4597566     1                    02400188     April-2018      4597566     1                    02400188     May-2018        4597566     1                    02400188     June-2018       4597566     1                    02400188     July-2018       4597566     1                    02400188     August-2018     4597566     1                    02400188     September-2018  4597566     0                    12400188     October-2018    4597566     0                    02400188     November-2018   4597566     0                    02400188     December-2018   4597566     0                    02400188     January-2019    4597566     0                    02400188     February-2019   4597566     0                    02400188     March-2019      4597566     0                    02400188     April-2019      4597566     0                    02400188     May-2019        4597566     0                    02400614     May-2015        2297544     0                    02400614     June-2015       2297544     0                    02400614     July-2015       2297544     0                    02400614     August-2015     2297544     0                    02400614     September-2015  2297544     0                    02400614     October-2015    2297544     0                    02400614     November-2015   2297544     0                    02400614     December-2015   2297544     0                    02400614     January-2016    2297544     1                    12400614     February-2016   2297544     1                    02400614     March-2016      2297544     1                    0當Chef_is_Masterchef列中發生從0 到 1或1 到 0 的轉換時,此轉換在Transition列中指示為1。實際上,我想創建另一列(名為“ Var ”),其中的值將按照下面提到的原始數據框填充,
查看完整描述

1 回答

?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

pandas.DataFrame.groupby.transformIIUC,與numpy.arange和一起使用numpy.argmax:


df["Var"] = df.groupby("Chef_Id")["Transition"].transform(lambda x: np.arange(x.size) - np.argmax(x))

print(df)

輸出:

    Hotel_id      Month_Year  Chef_Id  Chef_is_masterchef  Transition  Var

0    2400188   February-2018  4597566                   1           0   -7

1    2400188      March-2018  4597566                   1           0   -6

2    2400188      April-2018  4597566                   1           0   -5

3    2400188        May-2018  4597566                   1           0   -4

4    2400188       June-2018  4597566                   1           0   -3

5    2400188       July-2018  4597566                   1           0   -2

6    2400188     August-2018  4597566                   1           0   -1

7    2400188  September-2018  4597566                   0           1    0

8    2400188    October-2018  4597566                   0           0    1

9    2400188   November-2018  4597566                   0           0    2

10   2400188   December-2018  4597566                   0           0    3

11   2400188    January-2019  4597566                   0           0    4

12   2400188   February-2019  4597566                   0           0    5

13   2400188      March-2019  4597566                   0           0    6

14   2400188      April-2019  4597566                   0           0    7

15   2400188        May-2019  4597566                   0           0    8

16   2400614        May-2015  2297544                   0           0   -8

17   2400614       June-2015  2297544                   0           0   -7

18   2400614       July-2015  2297544                   0           0   -6

19   2400614     August-2015  2297544                   0           0   -5

20   2400614  September-2015  2297544                   0           0   -4

21   2400614    October-2015  2297544                   0           0   -3

22   2400614   November-2015  2297544                   0           0   -2

23   2400614   December-2015  2297544                   0           0   -1

24   2400614    January-2016  2297544                   1           1    0

25   2400614   February-2016  2297544                   1           0    1

26   2400614      March-2016  2297544                   1           0    2

27   3400624        May-2016  2597531                   0           0   -3

28   3400624       June-2016  2597531                   0           0   -2

29   3400624       July-2016  2597531                   0           0   -1

30   3400624     August-2016  2597531                   1           1    0

31   2400133   February-2016  4597531                   0           0   -6

32   2400133      March-2016  4597531                   0           0   -5

33   2400133      April-2016  4597531                   0           0   -4

34   2400133        May-2016  4597531                   0           0   -3

35   2400133       June-2016  4597531                   0           0   -2

36   2400133       July-2016  4597531                   0           0   -1

37   2400133     August-2016  4597531                   1           1    0

38   2400133  September-2016  4597531                   1           0    1

39   2400133    October-2016  4597531                   1           0    2

40   2400133   November-2016  4597531                   1           0    3

41   2400133   December-2016  4597531                   1           0    4

42   2400133    January-2017  4597531                   1           0    5

43   2400133   February-2017  4597531                   1           0    6

44   2400133      March-2017  4597531                   1           0    7

45   2400133      April-2017  4597531                   1           0    8

46   2400133        May-2017  4597531                   1           0    9


查看完整回答
反對 回復 2023-08-22
  • 1 回答
  • 0 關注
  • 1634 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號