2 回答

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

TA貢獻2003條經驗 獲得超2個贊
有幾種方法可以解決這個問題。由于all_data是一個包含字符串數組的列表,因此您需要實際訪問該數組而不是all_data.
假設 中可能有多個元素all_data,您可以使用您發布的代碼的嵌套列表理解版本:
txt_1 = " ".join(s for v in all_data for s in v if s not in string.punctuation).lower()
另一方面,如果您只想要 中的值dataframe['Content'],您有兩個選擇:
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()
選項 2 特指存儲all_data在位置 0的數組,而選項 3 通過dataframe['Content']直接訪問繞過了對列表的需要。
添加回答
舉報