簡體   English   中英

迭代PANDAS DATAFRAME時添加,刪除,編輯行和列

[英]Add, Delete, Edit Rows and Columns while Iterating PANDAS DATAFRAME

我有一個包含超過50,000條推文的csv文件,我使用Pandas作為DataFrame打開

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

在此處輸入圖片說明

我的目標是分析推文的情緒,在繼續之前,我需要對推文進行規范化。 我已經為此定義了一個函數,我想將輸出添加為數據框的新列(例如Text_Normalized)。

但是,如果滿足某些條件(例如,該推文不是用英語寫的),我可能還需要刪除該行。

如何遍歷數據框,將“ normalizer”功能應用於文本列,如果不符合某些條件,則刪除該行,並最終添加一個標准化了文本的新列?

說您有一些“文本規范化”功能:

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

您可以將此“行向”應用於“文本”列,並將其非常簡單地放在新列中,如下所示:

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

要刪除不符合某些條件的行,您需要一種在數據框中定義條件的方法。

假設您定義了一個函數,該函數標識文本是否為英語,並返回一個布爾值:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM