簡體   English   中英

根據條件按組更改或填充 dataframe 單元格

[英]Change or Fill dataframe cell based on condition by group

原DF:

Group    Col_A    Day
 A        0        1
 A        0        2
 A        0        3
 A        1        4
 A        1        5
 A        1        6
 A        1        7
 B        0        1
 B        0        2
 B        0        3
 B        1        4
 B        1        5
 B        0        6
 B        1        7

我需要做的是,按組將 Col_A 中的值從 0 更改為 1,以防 0 值跟隨值 1。在這個簡單的示例中,這發生在第 6 天的 B 組中。

所需的DF:

Group    Col_A    Day
 A        0        1
 A        0        2
 A        0        3
 A        1        4
 A        1        5
 A        1        6
 A        1        7
 B        0        1
 B        0        2
 B        0        3
 B        1        4
 B        1        5
 B        1        6
 B        1        7

我的實際 dataframe 有數千組和更多列,僅供參考。 任何建議表示贊賞。

使用df.loc[df.groupby('Group')['Col_A'].diff().eq(-1), 'Col_A'] = 1

如果要將 1 之后的所有 0 更改為 1,則可以使用groupby_cummax

df['Col_A'] = df.groupby('Group')['Col_A'].cummax()

Output:

   Group  Col_A  Day
0      A      0    1
1      A      0    2
2      A      0    3
3      A      1    4
4      A      1    5
5      A      1    6
6      A      1    7
7      B      0    1
8      B      0    2
9      B      0    3
10     B      1    4
11     B      1    5
12     B      1    6
13     B      1    7

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM