Python Pandas 正则表达式输出 NaN

标签 python regex pandas

我有一个 pandas 数据框列,其中包含这样的字符(应该是一本字典,但在抓取到 CSV 后变成了字符串):

{"id":307,"name":"Drinks","slug":"food/drinks"...`

我正在尝试提取“名称”的值,因此在本例中它将是“饮料”。

我现在的代码(如下所示)不断输出整个数据帧的 NaN。

df['extracted_category'] = df.category.str.extract('("name":*(?="slug"))')

我的正则表达式有什么问题?谢谢!

最佳答案

最好将其转换为数据帧,您可以使用 evalpd.Series 类似

# sample dataframe
df
                                          category
0  {"id":307,"name":"Drinks","slug":"food/drinks"}

df.category.apply(lambda x : pd.Series(eval(x)))
    id    name         slug
0  307  Drinks  food/drinks

或者使用 eval 仅将字符串转换为字典

df['category'] = df.category.apply(eval)

df.category.str["name"]
0    Drinks
Name: category, dtype: object

关于Python Pandas 正则表达式输出 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63278204/

相关文章:

python - Pandas - 当 nan 时,从另一个数据帧添加值

python - Pylons Web 应用程序的最小 Linux?

python - 在 python 中的空白处切割 x 个字符后的字符串

正则表达式从文件中提取多行

c# - 需要在 C# 正则表达式中提取文本

python - 将一列数据帧行中的列表转换为简单字符串

python - gitpython中clone_from中的非值参数

python - BeautifulSoup 选择器无法匹配任意标签?

正则表达式每个字母只使用一次?

python - 添加公式后使用 pandas/xlsxwriter 对列进行排序