【发布时间】:2020-10-20 19:37:28
【问题描述】:
我一直在尝试从 pandas 数据框中提取大写子字符串,但没有成功。如何在 pandas 中只提取大写子字符串?
这是我的 MWE:
MWE
import numpy as np
import pandas as pd
df = pd.DataFrame({'col': ['cat', 'cat.COUNT(example)','cat.N_MOST_COMMON(example.ord)[2]']})
df['feat'] = df['col'].str.extract(r"[^A-Z]*([A-Z]*)[^A-Z]*")
print(df)
"""
col feat
0 cat NaN
1 cat.COUNT(example) T
2 cat.N_MOST_COMMON(example.ord)[2] N
""";
预期输出
col feat
0 cat
1 cat.COUNT(example) COUNT
2 cat.N_MOST_COMMON(example.ord)[2] N_MOST_COMMON
【问题讨论】:
-
请分享您的预期输出。
-
可能与this question 重复。无论如何,您可以在 lambda 函数中应用任何这些替代方法,就像这里的答案一样。
-
@CainãMaxCouto-Silva 这个问题是关于正则表达式模块的,这里我尝试使用 pandas str EXTRACT 方法而不是 re.sub 方法。
-
@MilkyWay001 看来 Quang 已经为你准备好了。
-
@MilkyWay001,知道了!看起来你有你的(相当整洁的)答案然后=)