Python - 遍历熊猫数据帧中每一行的函数

斯拉维沙

我有一个包含一列的数据框,我试图用函数遍历该列的每一行,并将值放入新列中。所以首先我尝试在单个字符串上运行我的正则表达式以确保我得到我期望的结果:

# Importing dependencies
  import pandas as pd
  from pandas import ExcelWriter
  from pandas import ExcelFile
  import re

  # Test the pattern on a s string
 s = "64\"X36\"X60\" STACKED STONE AREAWELL BOMAN KEMP"
 z = re.search(r"((\d*[\.|-]?\d+(\/\d*)?)\s*((?:cms? 
 |in|inch|inches|mms?)\b|(?:[\"|\'|\”])|\s?)\s* 
 [x|X]\s*){0,2}(\d*[\.|-]?\d+(\/\d*)?)\s*((?:cms? 
 |in|inch|inches|mms?)\b|(?:[\"|\'|\”])|\s?)" , s, 
 flags=re.I)

 print(z.group(0))

我的结果是 64"X36"X60" 这正是我想要得到的。但是,当我以数据框上的函数形式应用它时:

  def patterns(row):
  return re.search(r"((\d*[\.|-]?\d+(\/\d*)?)\s* 
  ((?:cms?|in|inch|inches|mms?)\b|(?: 
  [\"|\'|\”])|\s?)\s*[x|X]\s*){0,2}(\d*[\.|-]?\d+ 
  (\/\d*)?)\s*((?:cms?|in|inch|inches|mms?)\b|(?: 
  [\"|\'|\”])|\s?)", row["Description"], 
  flags=re.I)

# Apply the function to each row
df["Dimensions"] = df.apply(patterns, axis=1)

我得到的结果格式如下:

re.Match object; span=(0, 11), match='52"X36"X72"'

所以我认为我没有正确构建我的功能。在我添加的示例测试中

print(z.group(0))

它仅从匹配元素中读取数据,这正是我所需要的。任何人都可以指出我如何调整函数以使每一行都得到相同的结果?

我尝试在函数的末尾添加 .group(0) ,但这是我执行它后得到的错误:

df["Dimensions"] = df.apply(patterns, axis=1)

错误: 在此处输入图片说明

约翰·杰斐逊·包蒂斯塔

抛出错误是因为re.search返回 None,导致该行中没有匹配的字符串。如果未找到字符串,请尝试添加条件以某种方式返回其他内容,如果未找到字符串,下面的代码将返回“无”。

def patterns(row):
  s = re.search(r"((\d*[\.|-]?\d+(\/\d*)?)\s* 
  ((?:cms?|in|inch|inches|mms?)\b|(?: 
  [\"|\'|\”])|\s?)\s*[x|X]\s*){0,2}(\d*[\.|-]?\d+ 
  (\/\d*)?)\s*((?:cms?|in|inch|inches|mms?)\b|(?: 
  [\"|\'|\”])|\s?)", row["Description"], 
  flags=re.I)

  return s.group(0) if s else "None"

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python - Pandas - 导入 Excel 文件,遍历每一行,添加新值,并添加到数据帧

来自分类Dev

如何在python中对pandas数据帧的每一行进行计算?

来自分类Dev

我必须为python中数据帧中的每一行迭代一些if-else条件

来自分类Dev

在Pandas Python的每一行中应用函数时发生数据转换错误

来自分类Dev

如何在Python数据框中的每一行上使用split函数?

来自分类Dev

如何通过遍历Python数据框中的每一行将计算的值存储在新列中?

来自分类Dev

如何在一行中使用“ where”函数在python数据帧中根据条件传递常量值

来自分类Dev

如何获取熊猫(python)中每一行的数组长度?

来自分类Dev

将.txt文件中的每一行作为python函数中的参数值传递/缩进

来自分类Dev

如何在Python中为数据框的每一行创建唯一的XML

来自分类Dev

在python中为Panda数据框的每一行创建一个Radar Chart

来自分类Dev

在python数据框中的每一行中查找最大值

来自分类Dev

在python map中:使用lambda函数将行号添加到矩阵的每一行

来自分类Dev

Python分析:在函数的每一行上花费的时间

来自分类Dev

将数据作为每一行的列追加到文件中(Python)

来自分类Dev

Python - 如何遍历数据帧并将一个单元格中的值替换为同一行中另一个单元格中的值

来自分类Dev

在Python中的txt的每一行中附加文本

来自分类Dev

在Python中的txt的每一行中附加文本

来自分类Dev

Python readlines()并将数据附加到每一行输出到一行

来自分类Dev

使用python计算每一行中的数字

来自分类Dev

如何使用python从文件中拆分每一行?

来自分类Dev

从python中的文件打印每一行的输出

来自分类Dev

python从文件的每一行中随机选择

来自分类Dev

在每一行python中找不到单词

来自分类Dev

从熊猫数据帧的每一行中的单词中删除多个字符组合

来自分类Dev

Python遍历电子表格的每一行

来自分类Dev

如何将今天的日期放在Python数据框的每一行的第一列中?

来自分类Dev

在 Pandas 数据帧的每一行上应用函数

来自分类Dev

熊猫数据框python-使第一行成为最后一行

Related 相关文章

  1. 1

    Python - Pandas - 导入 Excel 文件,遍历每一行,添加新值,并添加到数据帧

  2. 2

    如何在python中对pandas数据帧的每一行进行计算?

  3. 3

    我必须为python中数据帧中的每一行迭代一些if-else条件

  4. 4

    在Pandas Python的每一行中应用函数时发生数据转换错误

  5. 5

    如何在Python数据框中的每一行上使用split函数?

  6. 6

    如何通过遍历Python数据框中的每一行将计算的值存储在新列中?

  7. 7

    如何在一行中使用“ where”函数在python数据帧中根据条件传递常量值

  8. 8

    如何获取熊猫(python)中每一行的数组长度?

  9. 9

    将.txt文件中的每一行作为python函数中的参数值传递/缩进

  10. 10

    如何在Python中为数据框的每一行创建唯一的XML

  11. 11

    在python中为Panda数据框的每一行创建一个Radar Chart

  12. 12

    在python数据框中的每一行中查找最大值

  13. 13

    在python map中:使用lambda函数将行号添加到矩阵的每一行

  14. 14

    Python分析:在函数的每一行上花费的时间

  15. 15

    将数据作为每一行的列追加到文件中(Python)

  16. 16

    Python - 如何遍历数据帧并将一个单元格中的值替换为同一行中另一个单元格中的值

  17. 17

    在Python中的txt的每一行中附加文本

  18. 18

    在Python中的txt的每一行中附加文本

  19. 19

    Python readlines()并将数据附加到每一行输出到一行

  20. 20

    使用python计算每一行中的数字

  21. 21

    如何使用python从文件中拆分每一行?

  22. 22

    从python中的文件打印每一行的输出

  23. 23

    python从文件的每一行中随机选择

  24. 24

    在每一行python中找不到单词

  25. 25

    从熊猫数据帧的每一行中的单词中删除多个字符组合

  26. 26

    Python遍历电子表格的每一行

  27. 27

    如何将今天的日期放在Python数据框的每一行的第一列中?

  28. 28

    在 Pandas 数据帧的每一行上应用函数

  29. 29

    熊猫数据框python-使第一行成为最后一行

热门标签

归档