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']直接访问绕过了对列表的需要。
添加回答
举报