为了账号安全,请及时绑定邮箱和手机立即绑定

我将数据从 Pandas 数据框中附加到列表中,但无法对其使用列表理解?

我将数据从 Pandas 数据框中附加到列表中,但无法对其使用列表理解?

UYOU 2021-06-07 05:25:38
import pandas as pddata = {'Sl No':[1,2,3,4,5,6,7,8,9,10],'Content':['abcd','efhg','acsd','drtsf','dfthsrfv','ftyjdrtg','dthrsgae','awefawef','thr','hdthrt']}dataframe = pd.DataFrame(data)all_data =[]all_data.append(dataframe.Content.values)现在,如果我尝试添加如下所示的列表理解,则会出现错误。txt_1 = " ".join(v for v in all_data if v not in string.punctuation).lower()TypeError: 'in ' 需要字符串作为左操作数,而不是 numpy.ndarray除了使用 .extend() 命令之外,任何人都可以解释如何克服这一点吗?
查看完整描述

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单词列表添加到列表中,您的列表理解将不起作用。


查看完整回答
反对 回复 2021-06-09
?
湖上湖

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


查看完整回答
反对 回复 2021-06-09
  • 2 回答
  • 0 关注
  • 109 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信