繁体   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