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

标签 python pandas dataframe

我有一个包含超过 50,000 条推文的 csv 文件,我用 Pandas 将其作为 DataFrame 打开

df = pd.read_csv('dataset_tweets.csv')

enter image description here

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

尽管如此,如果该行满足某些条件(例如,如果推文不是用英语写的),我可能还需要删除该行。

如何迭代数据帧,将“标准化器”函数应用于文本列,如果不满足特定条件则删除该行,并最终添加一个文本标准化的新列?

最佳答案

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

def normalises_text(text):
    ....
    return normalised_text

您可以将此“按行”应用到“文本”列,然后非常简单地将其放入新列中,如下所示:

df['normalised_text'] = df.text.apply(normalises_text)

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

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

def is_text_english(text):
    ....
    return text_is_english

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

df['text_is_english'] = df.text.apply(is_text_english)

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

filtered_df = df[df.text_is_english]

或者,假设您有一个列说明推文的语言,您可以这样做:

filtered_df = df[df.tweet_language == 'EN']

这里的关键点是 apply 函数:

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

关于python - 迭代 PANDAS DATAFRAME 时添加、删除、编辑行和列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45694517/

相关文章:

python - 使用pandas.read_csv从csv文件加载数据时如何指定dtype?

python - 将 python 变量插入 mysql 表的行中

python - 如何在 Python/ElementTree 中输出 XML 声明 <?xml version ="1.0"?>

python - 如何在 pandas DataFrame 中选择和删除具有重复名称的列

r - 连接系统 R 中的两个或多个数据帧

python - 逐字比较优化

python - 使用 pd.df.copy() 时复制数据帧访问器

python - 从数据框中提取共现数据

python - Pandas DataFrame 填充列中的缺失值

python - 将数据帧值转换为一维列表