从数据框的列中提取字符串,然后使用该字符串添加新列

Pranav_m7
def comp():
    for car in df.name:
        x=car.split(' ')
        return x[0]
df.car=comp()

我想从“名称”列中提取汽车的品牌,然后使用它来进行另一列“汽车”的分析,但是此代码似乎不起作用,整个汽车列都填充了相同的值。

cs95

基本问题是您的return语句在循环内,因此将返回第一次迭代的结果。这与您将单个常量值分配回整个列的事实结合在一起,导致该值在所有行中广播,这就是为什么您看到所有具有相同值的原因。我建议做的是创建一个对单个值进行操作的函数(例如,您遍历一个名称列表,然后将您的逻辑应用于单个值),然后在循环或列表理解内调用此函数以最终建立完整的专栏。

def try_split(val):
    try:
        return val.split()[0]
    except AttributeError:
        return np.nan
df = pd.DataFrame({'name': ['aaa bb', 'ccc', 'ddd ee ff', np.nan]})
df       

        name
0     aaa bb
1        ccc
2  ddd ee ff
3        NaN

df['car'] = [try_split(val) for val in df['name']]
df
        name  car
0     aaa bb  aaa
1        ccc  ccc
2  ddd ee ff  ddd
3        NaN  NaN

这是一个列表理解,是完成它的一种不错的方法。它不比熊猫方法慢(请参见下文),并且具有高度的灵活性,并可以控制功能和错误处理。我在这篇文章中写了更多关于列表推导的用法:熊猫中的for循环真的不好吗?我什么时候应该在意?


但是,这是一种更通用的处理方式:用分隔空格,str.split并使用使用第一个单词str[0]

# str.split() splits on whitespace by default
df['car'] = df['name'].str.split().str[0]
df

        name  car
0     aaa bb  aaa
1        ccc  ccc
2  ddd ee ff  ddd
3        NaN  NaN

这与上面的循环相比没有更多的向量化,但是肯定在函数调用后隐藏了许多复杂性和角落套框逻辑,并且可读性更高。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从数据框中的列中提取字符串模式,并创建一个包含提取的字符串的新数据框列?

来自分类Dev

如何在熊猫数据框列中提取字符串的各个部分

来自分类Dev

从数据框的列的字符串中提取数值,并将该字符串替换为该数值

来自分类Dev

Python从数据框列中提取未知字符串

来自分类Dev

从数据框中提取字符串

来自分类Dev

无法从 df 列中提取字符串

来自分类Dev

如何在pandas数据框中的列的所有行中提取字符串中的大写单词?

来自分类Dev

创建提取字符串 sql 的新列

来自分类Dev

从字符串中提取字符

来自分类Dev

从列sql提取字符串?

来自分类Dev

合并行中的字典列表,然后从中提取字符串以形成新行

来自分类Dev

从单个字符串中提取字符串,然后删除空格

来自分类Dev

MVEL从字符串中提取字符串

来自分类Dev

如何从字符串中提取字符串

来自分类Dev

从字符串响应中提取字符串

来自分类Dev

Java 从字符串中提取字符串

来自分类Dev

在PHP中提取字符串

来自分类Dev

从字符串中提取字典

来自分类Dev

从路径中提取字符串

来自分类Dev

从变量中提取字符串

来自分类Dev

从数组中提取字符串

来自分类Dev

从字符串中提取字段

来自分类Dev

AWK解析CSV,从单元格中提取子字符串,并使用提取的值添加新列

来自分类Dev

Python:如何从数据框标题字符串中提取“假”建模日期并将其转换为新列

来自分类Dev

从单元格中提取字符串并将其放在新的数据框R中

来自分类Dev

仅从匹配字符串的列中提取数据

来自分类Dev

从 Pandas DF 列中提取数据/字符串

来自分类Dev

R:在数据框列中提取匹配的字符串

来自分类Dev

如何从熊猫数据框中的可变长度列中提取子字符串?

Related 相关文章

  1. 1

    如何从数据框中的列中提取字符串模式,并创建一个包含提取的字符串的新数据框列?

  2. 2

    如何在熊猫数据框列中提取字符串的各个部分

  3. 3

    从数据框的列的字符串中提取数值,并将该字符串替换为该数值

  4. 4

    Python从数据框列中提取未知字符串

  5. 5

    从数据框中提取字符串

  6. 6

    无法从 df 列中提取字符串

  7. 7

    如何在pandas数据框中的列的所有行中提取字符串中的大写单词?

  8. 8

    创建提取字符串 sql 的新列

  9. 9

    从字符串中提取字符

  10. 10

    从列sql提取字符串?

  11. 11

    合并行中的字典列表,然后从中提取字符串以形成新行

  12. 12

    从单个字符串中提取字符串,然后删除空格

  13. 13

    MVEL从字符串中提取字符串

  14. 14

    如何从字符串中提取字符串

  15. 15

    从字符串响应中提取字符串

  16. 16

    Java 从字符串中提取字符串

  17. 17

    在PHP中提取字符串

  18. 18

    从字符串中提取字典

  19. 19

    从路径中提取字符串

  20. 20

    从变量中提取字符串

  21. 21

    从数组中提取字符串

  22. 22

    从字符串中提取字段

  23. 23

    AWK解析CSV,从单元格中提取子字符串,并使用提取的值添加新列

  24. 24

    Python:如何从数据框标题字符串中提取“假”建模日期并将其转换为新列

  25. 25

    从单元格中提取字符串并将其放在新的数据框R中

  26. 26

    仅从匹配字符串的列中提取数据

  27. 27

    从 Pandas DF 列中提取数据/字符串

  28. 28

    R:在数据框列中提取匹配的字符串

  29. 29

    如何从熊猫数据框中的可变长度列中提取子字符串?

热门标签

归档