由此:
+------+------+--------------------------+-----------------+
| code | type | name | final_component |
+------+------+--------------------------+-----------------+
| C001 | ACT | Exhaust Blower Drive | |
| C001 | AL | | |
| C001 | AL | | |
| C001 | SET | Exhaust Blower Drive | |
| C001 | AL | | |
| C001 | AL | | |
| C001 | AL | | |
| C002 | ACT | Spray Pump Motor 1 Pump | |
| C002 | SET | Spray Pump Motor 1 Pump | |
| C003 | ACT | Spray Pump Motor 2 Pump | |
| C003 | SET | Spray Pump Motor 2 Pump | |
| C004 | ACT | Spray Pump Motor 3 Pump | |
| C004 | SET | Spray Pump Motor 3 Pump | |
+------+------+--------------------------+-----------------+
预期:
+------+------+--------------------------+--------------------------+
| code | type | name | final_component |
+------+------+--------------------------+--------------------------+
| C001 | ACT | Exhaust Blower Drive | Exhaust Blower Drive |
| C001 | AL | | Exhaust Blower Drive |
| C001 | AL | | Exhaust Blower Drive |
| C001 | SET | Exhaust Blower Drive | Exhaust Blower Drive |
| C001 | AL | | Exhaust Blower Drive |
| C001 | AL | | Exhaust Blower Drive |
| C001 | AL | | Exhaust Blower Drive |
| C002 | ACT | Spray Pump Motor 1 Pump | Spray Pump Motor 1 Pump |
| C002 | SET | Spray Pump Motor 1 Pump | Spray Pump Motor 1 Pump |
| C003 | ACT | Spray Pump Motor 2 Pump | Spray Pump Motor 2 Pump |
| C003 | SET | Spray Pump Motor 2 Pump | Spray Pump Motor 2 Pump |
| C004 | ACT | Spray Pump Motor 3 Pump | Spray Pump Motor 3 Pump |
| C004 | SET | Spray Pump Motor 3 Pump | Spray Pump Motor 3 Pump |
+------+------+--------------------------+--------------------------+
对于所有相同的代码,我必须将类型为“SET”的name值复制到final_component 与C001一样,“SET”类型的名称为排气鼓风机驱动 我必须将其复制到所有C001的最终组件
for ind in dataframe.index:
if dataframe['final_component'][ind]!=None:
temp = dataframe['final_component'][ind]
temp_code = dataframe['code'][ind]
i = ind
while dataframe['code'][i] == temp_code:
dataframe['final_component'][ind] = temp
i+=1
我可以想出这个 但它被困在while循环中
这里有一种方法。首先,重新创建数据帧:
现在,删除前导空格和尾随空格:
并填充
final_component
:现在用
None
替换空字符串并使用ffill()
解决方案1:当数据按顺序分组时
如果
'name'
字段中的数据已经有空值,那么可以执行一些简单的操作,如ffill()。函数用于填充数据框中缺少的值。'“ffill”代表“forward fill”,将向前传播最后一个有效观察值。在这种情况下,它不考虑code
中的值。如果你还想考虑这个问题,那么请看解决方案2。解决方案2:当数据必须基于另一列值时
如果需要根据代码中的值进行填充,可以使用以下解决方案
您可以执行查找,然后更新值。试试这样的
输出如下所示:
相关问题 更多 >
编程相关推荐