繁体   English   中英

Pandas DataFrame:根据过滤器和正则表达式提取进行替换

[英]Pandas DataFrame: Replace based on filter and regex extract

这是我的数据框的一部分:

   Type      Date        Diff   Data
0  Section   20171204    1.0    ~
1  Korean    20171204    1.0    저는 유양이에요.
2  English   20171204    1.0    Im Yooyang.
3  Theme     20171204    1.0    {"zh":"介绍","vi":"giới thiệu","ko":"소개","en":"I...

有超过 10,000 行,其中约 500 行是“主题”类型。

我试图只用韩文替换主题数据,即{"zh":"介绍","vi":"giới thiệu","ko":"소개","en":"I...变成소개

我可以使用正则表达式([가-힣]+)

我尝试使用df[df['Type'] == 'Theme'][['Data']].T.squeeze().str.extract('([가-힣]+)') ,但我不知道如何将其合并回原始 df ( df[df['Type'] == 'Theme'][['Data']] =不工作。

我尝试替换,但我似乎不能只为主题数据做到这一点。

显然我不应该使用迭代器: https : //pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.iterrows.html

您可以将map方法与匿名帮助函数一起使用,将字符串转换为带有json.loads的 dict 并通过loc索引:

import json

df.loc[df.Type == 'Theme', 'Data'] = df.loc[df.Type == 'Theme', 'Data'].map(lambda x: json.loads(x)["ko"])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM