如何在python中拆分字符串并仅从分隔的字符串中获取一个

时间:2020-09-18 09:04:20

标签: python pandas

我有一个包含“:”的字符串,它显示如下:

: SHOES

我想将冒号和SHOES分开,然后创建一个仅包含“ SHOES”的变量

我已经使用df.split(':')拆分了它们,但是我应该如何仅使用“ SHOES”创建变量?

谢谢。

4 个答案:

答案 0 :(得分:1)

您可以使用列表切片功能。然后使用lstrip和rstrip删除单词前后的多余空格。

df=": shoes"
d=df.split(":")[-1].lstrip().rstrip()
print(d)

答案 1 :(得分:0)

这是一个小样本。 stripValuenewString return都是相同的value。是更清洁的代码还是详细的代码:

    # set initial string
    myString = "string : value"
    
    # split it which will return an array [0,1,2,3...]
    stripValue = myString.split(":")

    # you can create a new var with the value you want/need from the array
    newString = (stripValue[1])
    
    # or you can short hand it
    print(stripValue[1])
    
    # calling the new var
    print(newString)

塞尔吉奥

答案 2 :(得分:0)

您可以使用'apply'方法对所有数据集执行循环,并使用'split()'拆分列。

这是一个示例:

import pandas as pd

df=pd.DataFrame({'A':[':abd', ':cda', ':vfe', ':brg']})

    # First we create a new column just named a new column -> df['new_column']
    # Second, we loop dataset with apply
    # Third, we execute a lambda with split function, getting only text after ':'
df['new_column']=df['A'].apply(lambda x: x.split(':')[1] )

df
        A   new_column
0   :abd    abd
1   :cda    cda
2   :vfe    vfe
3   :brg    brg

希望这对您有所帮助。

答案 3 :(得分:0)

如果原始字符串始终以“:”开头,则可以使用以下命令删除前两个字符:

myString[2:]