изначально был этот текст df
(называется train
)
index train
0 My favourite food is anything I didn't have to...
1 Now if he does off himself, everyone will thin...
2 WHY THE FUCK IS BAYLESS ISOING
3 To make her feel threatened
4 Dirty Southern Wankers
И я использовал это для подсчета слов в наборе поездов:
def word_count(df):
word_count = []
for i in df['text']:
word = i.split()
word_count.append(len(word))
return word_count
train['word_count'] = word_count(train)
Но я забыл применить предварительную обработку. После применения предварительной обработки в текстах df
стал таким
index train
0 [favourit, food, anyth, didnt, cook]
1 [everyon, think, he, laugh, screw, peopl, inst...]
2 [fuck, bayless, iso]
3 [make, feel, threaten]
4 [dirti, southern, wanker]
И когда я пытаюсь использовать def word_count(df):
у меня ошибка:
AttributeError: 'list' object has no attribute 'split'
Потому что теперь у меня есть df
со списками внутри. Как я могу это решить?
Вам не нужна эта функция костюма, сделайте это:
df['word_count'] = df['train'].apply(lambda x: len(x))
print(df)
train word_count
0 [favourit, food, anyth, didnt, cook] 5
1 [everyon, think, he, laugh, screw, peopl, inst] 7
2 [fuck, bayless, iso] 3
3 [make, feel, threaten] 3
4 [dirti, southern, wanker] 3
Если у вас уже есть list
, используйте str.len():
df['word_count'] = df['train'].str.len()
print(df)
# Output
train word_count
0 [favourit, food, anyth, didnt, cook] 5
1 [everyon, think, he, laugh, screw, peopl, inst] 7
2 [fuck, bayless, iso] 3
3 [make, feel, threaten] 3
4 [dirti, southern, wanker] 3