【问题标题】:Assigning values to a new column in Pandas为 Pandas 中的新列赋值
【发布时间】:2020-02-07 03:50:11
【问题描述】:

您好,我有一个如下的数据框:

Col1
ABC
ABCD
XYZ Ju21

我想将值分配给此数据框中的新列:

  • 如果 Col1 不包含空格,则将 Col1(行值)复制到 Col2
  • 如果 Cole 包含空格,则提取第一个空格之前的字符串并将其分配给 Col2

可以使用正则表达式或任何 pandas 函数来完成吗?任何帮助将不胜感激。

【问题讨论】:

  • 根据自己的研究,您尝试了哪些方法,结果如何?
  • Col2 = np.where(df[Col1].str.contains(' '),,Col1)。我需要帮助来提取第一个空格之前的部分。

标签: python regex pandas


【解决方案1】:

这是在np.where 中结合str.containsstr.splitlambda 的解决方案:

import pandas as pd
import numpy as np
df1 = pd.DataFrame({'index':[1,2,3],'Col1':['ABC','ABCD','XYZ Ju21']})

df1['Col2'] = np.where(df1['Col1'].str.contains(' '),df1['Col1'].str.split(' ').apply(lambda x: x[0]),df1['Col1'])
print(df1)

输出:

   index      Col1  Col2
0      1       ABC   ABC
1      2      ABCD  ABCD
2      3  XYZ Ju21   XYZ

【讨论】:

    猜你喜欢
    • 2023-02-06
    • 2016-03-08
    • 2018-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-13
    • 1970-01-01
    • 2017-07-31
    相关资源
    最近更新 更多