【问题标题】:How to create a column that starts with and end with string value in another column?如何在另一列中创建以字符串值开头和结尾的列?
【发布时间】:2021-11-11 15:50:48
【问题描述】:

如何在另一列中创建以“\”开头并以“]”结尾的列?

例如

A                  new_column

\\loc\ggg.x]ddj    \\loc\ggg.x]
+\\lol\lll.d]aaa   \\lol\lll.d]

我试过这样做

df['new_column'] = df['A'].str.split(']').str[0]

但它包含不需要的文本,并且只想从 X (\) 开始并以 Y ("]") 结束。

【问题讨论】:

    标签: python pandas dataframe slice


    【解决方案1】:

    试试.str.extract:

    df["new_column"] = df["A"].str.extract(r"(\\.*?\])")
    print(df)
    

    打印:

                                                                                           A                 new_column
    0                                                                        \\loc\ggg.x]ddj               \\loc\ggg.x]
    1                                                                       +\\lol\lll.d]aaa               \\lol\lll.d]
    2  \\ddf\gdd\Ps\s\3\s[a.xls]ss'!e+'\\d\\P\2\d[d.xls]Canjet'!B42+'\\df\gds\+'\\s\P[s.pdf]  \\ddf\gdd\Ps\s\3\s[a.xls]
    

    【讨论】:

    • 谢谢。我现在遇到的问题是一些字符串相互添加。例如 "\\ddf\gdd\Ps\s\3\s[a.xls]ss'!e+'\\d\\P\2\d[d.xls]Canjet'!B42+'\\df\ gds\+'\\s\P[s.pdf]" 并且它不仅仅返回 \\ddf\gdd\Ps\s\3\s[a.xls] 而是比我想要的更多。
    • @helpme 查看我的编辑。 (使用模式r"(\\.*?\])"
    • 工作完美!谢谢!
    【解决方案2】:

    您可以在此处使用str.replace 与捕获组:

    df["new_column"] = df["A"].str.replace(r'^.*?(\\\\.*\]).*$', r'\1')
    

    【讨论】:

      猜你喜欢
      • 2020-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-02
      • 1970-01-01
      • 1970-01-01
      • 2016-12-21
      相关资源
      最近更新 更多