pandas - 如何将序列号设置为空值?
问题描述
我有以下数据框
id val
1 40
2 null
3 null
4 30
5 null
我想得到
id val
1 40
2 1
3 2
4 30
5 3
我试着这样做
df_1['val'][df_1['val'].isnull()]
= df_1['val'][df_1['val'].isnull()].ffill() + df_1[df_1['val'].isnull()].count()
但这不起作用
解决方案
您可以按布尔掩码的计数设置,range
最后将值解析为整数:NaN
sum
m = df_1['val'].isnull()
df_1.loc[m, 'val'] = range(1, m.sum() + 1)
df_1['val'] = df_1['val'].astype(int)
print (df_1)
id val
0 1 40
1 2 1
2 3 2
3 4 30
4 5 3
推荐阅读
- java - 在 Firebase 聊天中加载固定数量的过滤消息
- statistics - 仅使用 x 轴变量匹配两个直方图的算法
- c# - xamarin 表单图像不显示
- kendo-ui - Kendo UI 将 datePicker 绑定到列
- amazon-web-services - AWS System Manager 启动会话:调用 StartSession 操作时发生错误 (TargetNotConnected):
未连接 - java - 具有泛型约束的 C# 方法重载
- c# - C# 中的字段不能是通用的吗?
- ansible - ansible:我没有收到任务的完整错误消息
- jquery - $(...).intercode 不是函数 Phone.js
- amazon-web-services - Terraform - 启用访问负载均衡器日志 InvalidConfigurationRequest:存储桶的访问被拒绝