首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >迭代PANDAS DATAFRAME时添加、删除、编辑行和列

迭代PANDAS DATAFRAME时添加、删除、编辑行和列
EN

Stack Overflow用户
提问于 2017-08-15 22:03:49
回答 1查看 1.1K关注 0票数 1

我有一个包含超过50,000条tweet的csv文件,我在Pandas中以DataFrame的形式打开

代码语言:javascript
运行
复制
df = pd.read_csv('dataset_tweets.csv')

我的目标是分析推文的情绪,在继续之前,我需要对推文进行规范化。我已经为此定义了一个函数,并且我想将输出添加为数据帧的新列(例如Text_Normalized)。

然而,如果满足某些条件(例如,如果tweet不是用英语编写的),我可能还需要删除该行。

如何遍历数据帧,将"normalizer“函数应用于文本列,如果行不满足特定条件则将其删除,并最终添加一个文本规范化的新列?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-15 23:30:32

假设你有一些“文本归一化”功能:

代码语言:javascript
运行
复制
def normalises_text(text):
    ....
    return normalised_text

您可以将此“按行”应用到“text”列,并非常简单地将其放入一个新列中,如下所示:

代码语言:javascript
运行
复制
df['normalised_text'] = df.text.apply(normalises_text)

要删除不符合某些条件的行,您需要一种在数据帧中定义条件的方法。

假设您定义了一个函数来识别文本是否为英语,并返回一个布尔值:

代码语言:javascript
运行
复制
def is_text_english(text):
    ....
    return text_is_english

然后像前面一样将其放入一列中:

代码语言:javascript
运行
复制
df['text_is_english'] = df.text.apply(is_text_english)

然后,您可以按如下方式过滤数据帧:

代码语言:javascript
运行
复制
filtered_df = df[df.text_is_english]

或者,假设你有一个专栏,其中说明了推文的语言,你可以这样做:

代码语言:javascript
运行
复制
filtered_df = df[df.tweet_language == 'EN']

这里的关键点是apply函数:

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.apply.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45694517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档