【问题标题】:>AttributeError: 'list' object has no attribute 'lower' (in a lowercase dataframe)>AttributeError:“list”对象没有属性“lower”(在小写数据框中)
【发布时间】:2019-11-03 02:21:53
【问题描述】:

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

数据框:

    all_cols
0   who is your hero and why
1   what do you do to relax
2   this is a hero
4   how many hours of sleep do you get a night
5   describe the last time you were relax

代码:

from sklearn.cluster import MeanShift
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import FunctionTransformer
from sklearn.feature_extraction.text import TfidfVectorizer

df['all_cols'] = df['all_cols'].str.lower()
df_list = df.values.tolist()

pipeline = Pipeline(steps=[
('tfidf', TfidfVectorizer()),
('trans', FunctionTransformer(lambda x: x.todense(), accept_sparse=True)),
('clust', MeanShift())])

pipeline.fit(df_list)
pipeline.named_steps['clust'].labels_

result = [(label,doc) for doc,label in zip(df_list, pipeline.named_steps['clust'].labels_)]

for label,doc in sorted(result):
    print(label, doc)

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

AttributeError Traceback(最近一次调用最后一次) 在

----> 1 个 pipeline.fit(df_list)

 2 pipeline.named_steps['clust'].labels_

AttributeError: 'list' 对象没有属性 'lower'

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

【问题讨论】:

  • 你确定所有行都是字符串而不是列表吗?

标签: python pandas cluster-analysis lowercase


【解决方案1】:

把它转换成pandas数据框,然后做你上面做的操作。它会起作用的。 我还贴了sn-p,你可以自己试试。

import pandas as pd

col = pd.Series(["who is your hero and why", "what do you do to relax", "this is a hero", "how many hours of sleep do you get a night", "describe the last time you were relax"])
fr = {"all_cols":col}
df = pd.DataFrame(fr)
df['all_cols'] = df['all_cols'].str.lower()
df_list = df.values.tolist()

【讨论】:

    【解决方案2】:

    df_list 指定列以避免嵌套列表:

    df_list = df.values.tolist()
    print (df_list)
    [['who is your hero and why'], 
     ['what do you do to relax'], 
     ['this is a hero'], 
     ['how many hours of sleep do you get a night'], 
     ['describe the last time you were relax']]
    

    df_list = df['all_cols'].values.tolist()
    print (df_list)
    ['who is your hero and why', 
     'what do you do to relax', 
     'this is a hero',
     'how many hours of sleep do you get a night',
     'describe the last time you were relax']
    

    【讨论】:

      猜你喜欢
      • 2016-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-14
      • 2020-08-21
      • 2019-01-01
      • 2021-12-30
      • 2019-11-06
      相关资源
      最近更新 更多