如果其他列为空或不符合条件,如何循环遍历一个嵌套框并创建一个新列。基本上要创建的是一个if语句,其中PM No_为空,然后选择No_并清除所有不需要的字符。我试过了。
result_list=[]
for i, row in df.iterrows():
if(df['PM No_'].iloc[i]!=''):
if df['Condition'].iloc[i] == '9':
result = df['No_'].str.split('-0G',expand=True)[0]
result_list.append(result)
else:
result=(row['PM No_'])
result_list.append(result)
df['test']=result_list
这就是我想要的样子。如果PM No_为空,则取No_代替,如果Condition为9,则在添加到新列时从No_中删除-0G。我也有一些其他的条件,如如果条件是1,然后从No_中删除-0S。
| PM编号_|条件|不--|测试|
| --|--|--|--|
| GVSU10K20H| 1 |GVSU10K20H| GVSU10K20H|
| 1Y002VMH| 5 |1Y002VMH-0H| 1Y002VMH-0H|
| | 2NX00ESRU-0G| 2NX00ESRU| 2NX00ESRU |
| 20WNGE| 2 |20瓦|20WNGE|
| | C33761-0S| C33761| C33761 |
1条答案
按热度按时间s3fp2yjn1#
假设空单元格是NaN,使用
fillna
,mask
,str.replace
:输出量:
如果你有空字符串:
输出量:
多个条件
如果有多个条件,因为字符串操作不容易向量化,请使用循环,这里使用自定义函数
或者,如果所有操作都包括删除后缀:
输出量: