使用正则表达式映射系列时如何修复 np.cumsum 函数

Posted

技术标签:

【中文标题】使用正则表达式映射系列时如何修复 np.cumsum 函数【英文标题】:How to fix the np.cumsum function when mapping a series with regex 【发布时间】:2019-09-14 07:13:35 【问题描述】:

我有一个类似的列表:

**x** 
Chapter 1 
some text
Chapter 2
Chapter 3
Chapter 4
Chapter 5"

我寻找的输出是一个类似的系列:

1
1
2
3
4
5

我写了这段代码

pattern = r"chapter \d" 
x.map(lambda x: np.cumsum(bool(re.search(pattern,str(x), flags=re.I))))

它给了我输出:

[1]
[0]
[1]
[1]
[1]
[1]

你们能帮我修复这个代码吗?您还可以提出更好的解决方案。谢谢

【问题讨论】:

我确实分两步修复了我的代码:pattern = r"chapter \d" y = x.map(lambda x: bool(re.search(pattern,str(x), flags=re.I))) z = np.cumsum(y) 但仍然无法弄清楚为什么单班轮不起作用 如果您决定使用,您可以在解决方案中添加自己的答案。 【参考方案1】:

感谢大家帮助我修复我的代码。我确实看到了使用 ffill 的替代解决方案,这很棒。

我在下面使用了 2 线解决方案:

pattern = r"chapter \d" 
y = x.map(lambda x: bool(re.search(pattern,str(x), flags=re.I))) 
z = np.cumsum(y)

【讨论】:

以上是关于使用正则表达式映射系列时如何修复 np.cumsum 函数的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中修复正则表达式

如何使用选择性正则表达式在熊猫系列中执行替换?

如何修复这个正则表达式?

如何修复正则表达式[重复]

awk 系列:如何使用 awk 和正则表达式过滤文本或文件中的字符串

如何修复 jsx 结束标签上的 linting 错误:“未关闭的正则表达式”?