我有一列字符串,看起来类似于以下内容:
1 IX-1-a
2 IX-1-b
3 IX-1-C
4 IX-1-D
有些以小写字母结尾,而另一些以大写字母结尾。我需要将所有结尾标准化为小写,而不影响字符串开头的字母。下面是我正在处理的一些代码片段,用于在系列中进行更改,但它并不完全起作用。
if i in tw4515['Unnamed: 0'].str[-1].str.isupper() == True:
tw4515['Unnamed: 0'].str[-1].str.lower()
如何有效地利用tw4515['Unnamed: 0'].str[-1].str.isupper()
的真值表来影响条件变化?
一个选项是从右侧拆分一次,使第二部分小写,然后组合:
tmp = s.str.rsplit('-', 1)
out = tmp.str[0] + '-' + tmp.str[1].str.lower()
如果最后一部分总是一个字母,@Barmar的解决方案甚至更好:
out = s.str[:-1] + s.str[-1].str.lower()
输出:
1 IX-1-a
2 IX-1-b
3 IX-1-c
4 IX-1-d