2 回答

TA貢獻(xiàn)1998條經(jīng)驗(yàn) 獲得超6個(gè)贊
看看all_data:
In [679]: all_data
Out[679]:
[array(['abcd', 'efhg', 'acsd', 'drtsf', 'dfthsrfv', 'ftyjdrtg',
'dthrsgae', 'awefawef', 'thr', 'hdthrt'], dtype=object)]
這是一個(gè)包含一個(gè)數(shù)組的列表。這意味著v你理解的the將是這個(gè)數(shù)組,而不是數(shù)組中的一個(gè)詞。
extend而不是在append將數(shù)組添加到列表時(shí)解壓縮數(shù)組。
另一個(gè)選項(xiàng)是添加一個(gè)圖層以從列表中選擇數(shù)組,然后循環(huán),for v in all_data[0]。
如果您將appended單詞列表添加到列表中,您的列表理解將不起作用。

TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊
有幾種方法可以解決這個(gè)問(wèn)題。由于all_data是一個(gè)包含字符串?dāng)?shù)組的列表,因此您需要實(shí)際訪問(wèn)該數(shù)組而不是all_data.
假設(shè) 中可能有多個(gè)元素all_data,您可以使用您發(fā)布的代碼的嵌套列表理解版本:
txt_1 = " ".join(s for v in all_data for s in v if s not in string.punctuation).lower()
另一方面,如果您只想要 中的值dataframe['Content'],您有兩個(gè)選擇:
txt_2 = " ".join(v for v in all_data[0] if v not in string.punctuation).lower()
txt_3 = " ".join(v for v in dataframe.Content if v not in string.punctuation).lower()
選項(xiàng) 2 特指存儲(chǔ)all_data在位置 0的數(shù)組,而選項(xiàng) 3 通過(guò)dataframe['Content']直接訪問(wèn)繞過(guò)了對(duì)列表的需要。
添加回答
舉報(bào)