检查系列中的最后一个字符是否为大写,如果为真则转换为小写
Check if last character in series is upper case and convert to lowercase if true
我有一列看起来类似于以下内容的字符串:
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()
的真相table来影响条件变化?
一种选择是从右侧拆分一次,将第二部分变为小写,然后合并:
tmp = s.str.rsplit('-', 1)
out = tmp.str[0] + '-' + tmp.str[1].str.lower()
如果最后一部分总是一个字母, 就更好了:
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
我有一列看起来类似于以下内容的字符串:
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()
的真相table来影响条件变化?
一种选择是从右侧拆分一次,将第二部分变为小写,然后合并:
tmp = s.str.rsplit('-', 1)
out = tmp.str[0] + '-' + tmp.str[1].str.lower()
如果最后一部分总是一个字母,
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