0

我正在尝试将 CSV 文件加载到 python 中并清理文本。但我不断收到错误消息。我将 CSV 文件保存在一个名为 data_file 的变量中,下面的函数会清理文本并返回干净的 data_file。

import pandas as pd
import numpy as np
import re
import matplotlib.pyplot as plt

df = pd.read_csv("/Users/yoshithKotla/Desktop/janTweet.csv")
data_file = df

print(data_file)


def cleanTxt(text):
    text = re.sub(r'@[A-Za-z0-9]+ ', '', text)  # removes @ mentions
    text = re.sub(r'#[A-Za-z0-9]+', '', text)
    text = re.sub(r'RT[\s]+', '', text)
    text = re.sub(r'https?:\/\/\S+', '', text)

    return text


df['data_file'] = df['data_file'].apply(cleanTxt)

df 

我在这里遇到一个关键错误。

4

1 回答 1

0

关键错误来自您试图将函数应用于不包含此类列data_file的数据框列的事实。您刚刚在您的行中df创建了一个副本。dfdata_file = df

要更改数据框 df 的列名,请使用: df.columns = [list,of,values,corresponding,to,your,columns]

然后,您可以将该函数应用于右列或整个数据框。

要在整个数据帧上应用函数,您可能需要使用该.applymap()方法。

编辑

为了清楚起见:

要打印列名和数据框列的长度:

print(df.columns)
print(len(df.columns))

要修改列名:

df.columns = [list,of,values,corresponding,to,your,columns]

要将您的函数应用于列:

df['your_column_name'] = df['your_column_name'].apply(cleanTxt)

要将您的功能应用于整个数据框:

df = df.applymap(cleanTxt)
于 2021-06-02T09:17:58.290 回答