python - Python Pandas:根据其他空白列的条件使用 ffill
问题描述
那时我尝试了 group ,但没有任何效果。:(
如何根据名为“Rec”的空白列使用 ffill。因此,如果此列为空白,则在“Rec”列中填充先前的值,然后将“Loc1”和 Loc 替换为先前的值?
这是我的df:
+--------+----------+----------------------------+---------+------------+
| Lot | Rec | Part | Loc1 | Loc |
+--------+----------+----------------------------+---------+------------+
| Y19105 | BIPA6.02 | PHEMT6_BGATE_70NM_EBEAM.05 | B_EBEAM | B_F_EBEAM |
+--------+----------+----------------------------+---------+------------+
| Y19105 | | PHEMT6_BGATE_70NM_EBEAM.05 | B_PC | B_PC_STOCK |
+--------+----------+----------------------------+---------+------------+
| Y19105 | BIPA6.02 | PHEMT6_BGATE_70NM_EBEAM.05 | B_EBEAM | B_F_EBEAM |
+--------+----------+----------------------------+---------+------------+
| Y19105 | BIPA6.02 | PHEMT6_BGATE_70NM_EBEAM.05 | B_EBEAM | B_F_EBEAM |
+--------+----------+----------------------------+---------+------------+
| Y19105 | BIPA6.02 | PHEMT6_BGATE_70NM_EBEAM.05 | B_EBEAM | B_F_EBEAM |
+--------+----------+----------------------------+---------+------------+
| Y19105 | BIPA6.02 | PHEMT6_BGATE_70NM_EBEAM.05 | B_EBEAM | B_F_EBEAM |
+--------+----------+----------------------------+---------+------------+
| Y19105 | | PHEMT6_BGATE_70NM_EBEAM.05 | B_PC | B_PC_STOCK |
+--------+----------+----------------------------+---------+------------+
| Y19105 | | PHEMT6_BGATE_70NM_EBEAM.05 | B_PC | B_PC_STOCK |
+--------+----------+----------------------------+---------+------------+
| Y19105 | | PHEMT6_BGATE_70NM_EBEAM.05 | B_PC | B_PC_STOCK |
+--------+----------+----------------------------+---------+------------+
我想要的输出:
+--------+----------+----------------------------+---------+-----------+
| Lot | Rec | Part | Loc1 | Loc |
+--------+----------+----------------------------+---------+-----------+
| Y19105 | BIPA6.02 | PHEMT6_BGATE_70NM_EBEAM.05 | B_EBEAM | B_F_EBEAM |
+--------+----------+----------------------------+---------+-----------+
| Y19105 | BIPA6.02 | PHEMT6_BGATE_70NM_EBEAM.05 | B_EBEAM | B_F_EBEAM |
+--------+----------+----------------------------+---------+-----------+
| Y19105 | BIPA6.02 | PHEMT6_BGATE_70NM_EBEAM.05 | B_EBEAM | B_F_EBEAM |
+--------+----------+----------------------------+---------+-----------+
| Y19105 | BIPA6.02 | PHEMT6_BGATE_70NM_EBEAM.05 | B_EBEAM | B_F_EBEAM |
+--------+----------+----------------------------+---------+-----------+
| Y19105 | BIPA6.02 | PHEMT6_BGATE_70NM_EBEAM.05 | B_EBEAM | B_F_EBEAM |
+--------+----------+----------------------------+---------+-----------+
| Y19105 | BIPA6.02 | PHEMT6_BGATE_70NM_EBEAM.05 | B_EBEAM | B_F_EBEAM |
+--------+----------+----------------------------+---------+-----------+
| Y19105 | BIPA6.02 | PHEMT6_BGATE_70NM_EBEAM.05 | B_EBEAM | B_F_EBEAM |
+--------+----------+----------------------------+---------+-----------+
| Y19105 | BIPA6.02 | PHEMT6_BGATE_70NM_EBEAM.05 | B_EBEAM | B_F_EBEAM |
+--------+----------+----------------------------+---------+-----------+
| Y19105 | BIPA6.02 | PHEMT6_BGATE_70NM_EBEAM.05 | B_EBEAM | B_F_EBEAM |
+--------+----------+----------------------------+---------+-----------+
非常感激你的帮助!
解决方案
IIUC,您可以尝试将Loc1
andLoc
值更改为NaN
if the Rec
column is NaN
,然后ffill
在整个 DataFrame 上使用。
尝试这个:
df.loc[df['Rec'].isnull(), ['Loc1', 'Loc']] = np.nan
df.ffill()
推荐阅读
- html - 创建一个水平环绕的垂直列表
- javascript - 如何在语义上访问对象键值
- google-apps-script - Google AppScript -> DocumentApp -> 提取列表项索引
- or-tools - Or-tools 交货后返回仓库
- java - 从给定列表中获取格式化字符串
- angular - ng build --prod 抛出服务未定义或“不是函数”错误
- multithreading - 如何通过拆分数据和高效使用多线程多 GPU 来计算大型矩阵向量乘法?
- azure - 在服务队列上添加新消息时 Web 作业不工作
- botframework - 有什么方法可以连接本地运行的代码和微软团队的频道进行交流。基本上是一个机器人?
- ios - iOS应用程序中未定义的符号_GULResetLogger