如何删除熊猫系列(或列表)中每个元素的某些字符后的字符串部分?

时间:2020-01-27 10:35:31

标签: python pandas split

我有一个熊猫系列,例如['AAA.B','BBB.C','CCC.D']。我想在句点(包括首尾)后删除每个字符串的部分。换句话说,此处的期望结果将是['AAA','BBB','CCC']。我无法弄清楚如何做到这一点,而又一次不能遍历每个元素以分别对其进行操作,这的确是低效的。对如何执行此操作有任何想法吗?

3 个答案:

答案 0 :(得分:2)

使用str.split

例如:

s = pd.Series( ['AAA.B', 'BBB.C', 'CCC.D'])
print(s.str.split(".").str[0])

输出:

0    AAA
1    BBB
2    CCC
dtype: object

答案 1 :(得分:1)

您可以使用str.replace

s = pd.Series(['AAA.B', 'BBB.C', 'CCC.D'])
s.str.replace(r'(\.\w+)', '')

0    AAA
1    BBB
2    CCC
dtype: object

答案 2 :(得分:1)

做到这一点的最好方法是

s = s.split('.')[0]

另一种方法可以是正则表达式。或者,如果在“。”之后。也必须使用

head, sep, tail = s.partition('.')

在这种情况下,head将包含在'。'之前的字符串部分,sep将包含'。',而tail将在'。'之后的字符串部分。