首页 > 解决方案 > 如何在 casefolding 中询问有关小写错误的问题?

问题描述

我不明白这个错误......在将其转换为列表数据框之前,我已经将 df 转换为小写:

0   Masuk ke Liang Lahat, Rian D’Masiv Makin Sadar...   Infotainment    Untuk pertama kalinya, Rian masuk ke liang lah...

1   Alasan PPKM, Kuasa Hukum Vicky Prasetyo Sebut ...   Infotainment    Andai saja persidangan tetap berjalan seperti ...

...

1573    Jessica Iskandar Syok Tahu Kabar Nia Ramadhani...   Infotainment    “Banyak wartawan juga nanyain. Itu aku baru ba...

1574    Show 10 Menit BTS dalam Koleksi LV  Music & Movie   BTS melaksanakan ’’tugas’’ perdananya sebagai ...

代码:

import pandas as pd
import numpy as np
import re
import string
import nltk
 
import str
def load_data():
    dataset = pd.read_csv("jawapos_entertainment.csv")
    return dataset
news_df = load_data()
news_df.head()
df = pd.DataFrame(news_df[['judul_name','judul_kategori','judul_Headline']])
df
from Sastrawi.StopWordRemover.StopWordRemoverFactory import StopWordRemoverFactory
factory = StopWordRemoverFactory()
stopwords = factory.create_stop_word_remover()

kalimat = df [['judul_name','judul_Headline']]
kalimat = kalimat.lower()

stop = stopwords.remove(kalimat)
print(stop)

但我在这一行有一个错误:

AttributeError                            Traceback (most recent call last)
<ipython-input-17-ce52d5ec4fb2> in <module>
      4 
      5 kalimat = df [['judul_name','judul_Headline']]
----> 6 kalimat = kalimat.lower()
      7 
      8 stop = stopwords.remove(kalimat)
~\anaconda3\lib\site-packages\pandas\core\generic.py in __getattr__(self, name)
   5463             if self._info_axis._can_hold_identifiers_and_holds_name(name):
   5464                 return self[name]
-> 5465             return object.__getattribute__(self, name)
   5466 
   5467     def __setattr__(self, name: str, value) -> None:

AttributeError: 'DataFrame' object has no attribute 'lower'

但是,如果我之前已经通过了小写数据帧,为什么程序会返回小写错误?

标签: python-3.xpandasdataframelowercasecase-folding

解决方案


您不能只降低 Dataframe 对象。首先,您必须指出您想对 Series 和 Index-pd.Series.str 使用矢量化字符串函数。将整个数据帧转换为小写格式应如下所示:

for columns in kalimat.columns:
    kalimat[columns] = kalimat[columns].str.lower() 

推荐阅读