【问题标题】:How to find an alphabet and extract the alphabet and the number tagged along with it in Pandas? [duplicate]如何找到一个字母表并在 Pandas 中提取字母表和与之一起标记的数字? [复制]
【发布时间】:2022-11-23 00:03:47
【问题描述】:

我想在数据框中创建一个新列,用于在列中搜索字母表。基于它,它将搜索下一个数字并将字母和数字复制到新提取的列中。例子:

Month Sem_Year
2020-04-01 H1 2020
2020-05-01 2020 H1
2020-06-01 H1 2020
2020-07-01 H2 2020
2020-08-01 H2 2020
2020-09-01 2020 H2
2020-10-01 2020 H2
2020-11-01 H2 2020
2020-12-01 H2 2020
2021-01-01 H1 2021
2021-02-01 H1 2021

现在我想在第二列中搜索字母 H 并提取与其一起标记的字母和数字。例子:

Month Sem_Year Sem
2020-04-01 H1 2020 H1
2020-05-01 2020 H1 H1
2020-06-01 H1 2020 H1
2020-07-01 H2 2020 H2
2020-08-01 H2 2020 H2
2020-09-01 2020 H2 H2
2020-10-01 2020 H2 H2
2020-11-01 H2 2020 H2
2020-12-01 H2 2020 H2
2021-01-01 H1 2021 H1
2021-02-01 H1 2021 H1

【问题讨论】:

  • 你能把它分开并拿走第一项吗?除了有人可以帮我做这件事之外,你问过其他问题吗?

标签: python pandas dataframe


【解决方案1】:

您可以使用 df.insert() 添加新列。要提取字母表,循环遍历第二列中的值 (column_value) 并使用“value_for_new_column=column_value.split(' ')[0]”

【讨论】:

    【解决方案2】:

    假设您只需要新列的前两个字符,那么您可以使用:

    df['Sem'] = df['Sem_year'].str[0:2]
    

    相同的原理可用于提取更复杂的子字符串,例如使用正则表达式

    或者,如果您想拆分字符串中的空格,则可以使用:

    df['Sem'] = df['Sem_year'].str.split().str[0]
    

    对于您提供的数据样本,两者都给出相同的结果。

    【讨论】:

      猜你喜欢
      • 2011-01-16
      • 1970-01-01
      • 1970-01-01
      • 2015-05-24
      • 2020-08-19
      • 2017-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多