rstrip之前的代码
=if(sumifs('POs iTunes'!$D:$D,'POs iTunes'!$C:$C,concatenate("*",B$8,"*"),'POs iTunes'!$E:$E,text($A11,"dd/mm/yy"))=0,iferror({INDEX(B12:B,MATCH(true,B12:B>0,0))},0))
带有rstrip的代码(从第一列值的末尾删除“ _V2”):
column_names = lh_Area_Base_V2.columns.tolist()
for i, val in enumerate(column_names[1:]):
column_names[i+1] += '_Base_V2'
column_names[0] = 'Subj_ID'
# Replace the column names with a new name
lh_Area_Base_V2.columns = column_names
lh_Area_Base_V2.head()
错误:为什么ID索引#1的末尾丢弃了一个值2,而rstrip函数没有要求该值(该函数仅要求删除“ _V2”)?
我很想听听任何修复建议。
答案 0 :(得分:3)
这是rstrip
的预期行为:
chars参数是一个字符串,指定要删除的字符集
这不仅是剥离 string _V2
,还将剥离任何包含的字符,包括第二行末尾的2
。
相反,您可以使用正则表达式替换结尾的_V2
:
df.assign(Subj_ID=df.Subj_ID.str.replace(r'_V2$', ''))
Subj_ID lh_bankssts_area_base_V2
0 SILVA001 861
1 SILVA002 1051
2 SILVA004 1127
3 SILVA005 1346
4 SILVA007 1209