具有如下数据流:
df_data=pd.DataFrame({'name':[['ABC','DOS','TRES'],['XYZ','MORTGAGE','SOLUTIONS']],
'original': ['ABC DOS TRES','XYZ MORTGAGE SOLUTIONS']})
我使用chain.from_iterable提取列表中的每一项,并将结果添加到一个dataframe:
s = pd.DataFrame(chain.from_iterable(df_data['name']),columns=['word'])
我怎么能做这样的事情:
t = pd.DataFrame({'word': chain.from_iterable(df_data['name'])})
dataframe的最后一次创建给出了一个错误TypeError: object的类型为“itertools”。chain'没有len()。两个dataframe的创建有什么不同?如何在最后一个创建的错误可以修复? 谢谢:) 问题来源StackOverflow 地址:/questions/59382676/pandas-chain-from-iterable-error-object-of-type-itertools-chain-has-no-len
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
使用chain.from_iterable返回一个迭代器,而不是一个列表/序列。旧版本的panda需要传递给数据帧构造函数的对象有一个len,这样它就知道后端要分配多大的数组。chain对象不提供(也不应该提供)。 你可以把它放在列表中解决你的问题:
t = pd.DataFrame({'word': list(chain.from_iterable(df_data['name']))})