python - 根据python中另一列的条件增加一列
问题描述
我有一个数据框,我想根据不同列“col”的条件创建一个新列名“new”。创建新列名“new”,并在它在“col”中找到任何值时对其进行计数。
感谢您的回答,我是 Python 新手,所以我不知道该怎么做
index col
1 2.11.67
2 NaN
3 NaN
4 5.10.56
5 NaN
6 2.10.67
7 NaN
8 2.09.67
应该导致: -
index col new
1 2.11.67 1
2 NaN NaN
3 NaN NaN
4 5.10.56 2
5 NaN NaN
6 2.10.67 3
7 NaN NaN
8 2.09.67 4
解决方案
您可以使用notna
、cumsum
和的组合where
:
mask = df['col'].notna()
df['new'] = mask.cumsum().where(mask)
输出:
col new
index
1 2.11.67 1.0
2 NaN NaN
3 NaN NaN
4 5.10.56 2.0
5 NaN NaN
6 2.10.67 3.0
7 NaN NaN
8 2.09.67 4.0
推荐阅读
- django - 刷新令牌宽限期的安全隐患
- python - 为什么我有两个传说?如何融合传奇?Python
- reactjs - 谷歌登录与 wordpress 用户注册良好做法
- textmate - TextMate 语法 - `end` 表达式的问题
- c - 如何将文件的内容读取到静态声明的变量中?
- python - “LSTM”对象没有属性“_flat_weights_names”
- excel - 选择一百年中某一天的记录
- php - PHP函数中不同值的选择
- javascript - 我们可以在 _app.js 中同时使用 MUI makeStyles 和 Theming
- python - 如何让 PyCharm 查看由 `__doc__` 分配指定的 doctest