python - 如何在熊猫数据框中的每个组上标记第一个值
问题描述
我有一个像后面的数据框
A B
0 0 0
1 0 0
2 0 0
3 1 0
4 0 0
5 0 0
6 0 0
7 0 1
8 1 1
9 1 1
10 0 1
11 0 1
12 0 1
13 1 1
14 0 2
15 0 2
16 0 2
17 1 2
18 0 2
19 1 2
20 1 2
我想制作'C',它是每个组'B'的A的第一个值的标记
A B C
0 0 0 0
1 0 0 0
2 0 0 0
3 1 0 1
4 0 0 0
5 0 0 0
6 0 0 0
7 0 1 0
8 1 1 1
9 1 1 0
10 0 1 0
11 0 1 0
12 0 1 0
13 1 1 0
14 0 2 0
15 0 2 0
16 0 2 0
17 1 2 1
18 0 2 0
19 1 2 0
20 1 2 0
我不知道这样做我尝试了 groupby 方法,但我未能将它们放入新列中
解决方案
尝试使用groupby
andtransform
和np.where
:
df['C'] = df.groupby('B')['A'].transform(lambda x: np.where(x.duplicated(), 0, x))
现在:
print(df)
是:
A B C
0 0 0 0
1 0 0 0
2 0 0 0
3 1 0 1
4 0 0 0
5 0 0 0
6 0 0 0
7 0 1 0
8 1 1 1
9 1 1 0
10 0 1 0
11 0 1 0
12 0 1 0
13 1 1 0
14 0 2 0
15 0 2 0
16 0 2 0
17 1 2 1
18 0 2 0
19 1 2 0
20 1 2 0
推荐阅读
- r - R不识别模型公式中的二次函数?
- javascript - 无法发布路由获取对象未定义而不是 Node Js 中的回调
- autodesk-forge - 使用 BIM360 Docs API 我们如何检索可以分配给问题的位置列表?
- javascript - React 原生 Flatlist onclick 导航
- ios - Swift 中最轻量级的数据类型是什么?
- linux - 如何使用正则表达式创建 Hbase 表
- java - 如何在 Spring 应用程序中处理 SockJsMessageDeliveryException?
- ios - 不同 iPhone 设备的布局问题
- python - 将域名转换为其 URL 格式以进行 URL 解析
- android - 如何在另一个活动中从相机中获取照片路径并将其与 volley 一起发送到服务器?