首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接熊猫数据-所有传递的对象都是空的。

问连接熊猫数据-所有传递的对象都是空的。
EN

Stack Overflow用户
提问于 2013-07-12 16:20:00
回答 1查看 5.4K关注 0票数 3

我正在尝试读取和过滤一个csv文件块,然后将结果放入一个dataframe。

下面是我用于读取和过滤csv的内容:

代码语言:javascript
复制
csv_chunks = pandas.read_csv(filepath, sep = DELIMITER,skiprows = 2, chunksize = 1000, converters = {"A": str, "B": str})
for chunk in csv_chunks:
    chunk = chunk[(chunk["B"] + chunk["A"]).isin(acids.tolist())]

当我去把这些块连在一起

代码语言:javascript
复制
df = pandas.concat(chunk for chunk in csv_chunks)

我说错了

代码语言:javascript
复制
  File "C:\Program Files\Python\Anaconda\lib\site-packages\pandas\tools\merge.py
", line 872, in concat
verify_integrity=verify_integrity)
File "C:\Program Files\Python\Anaconda\lib\site-packages\pandas\tools\merge.py
", line 913, in __init__
raise Exception('All objects passed were None')
Exception: All objects passed were None

有几个块是空的,但是也有非空的,所以不确定哪些对象被看作是空的。任何想法都欢迎!

谢谢,安妮

EN

回答 1

Stack Overflow用户

发布于 2013-07-12 16:57:21

尝试:

代码语言:javascript
复制
csv_chunks = [chunk[(chunk["B"] + chunk["A"]).isin(acids.tolist())]
              for chunk in csv_chunks]
df = pandas.concat(csv_chunks)

密码

代码语言:javascript
复制
for chunk in csv_chunks:
    chunk = chunk[(chunk["B"] + chunk["A"]).isin(acids.tolist())]

可能没有按你的意愿去做。在for-loop的每次迭代中,for chunk in csv_chunks在csv_chunks中将一个项分配给chunk。然后,

代码语言:javascript
复制
chunk = chunk[(chunk["B"] + chunk["A"]).isin(acids.tolist())]

立即将重新分配一个新值给chunk。很好,但这不会改变csv_chunks中的项。您只是在某个自变量chunk中旋转这个值。

要修改csv_chunks中的值,可以使用列表理解来构建一个新列表,然后将其重新分配给变量csv_chunks。

代码语言:javascript
复制
csv_chunks = [chunk[(chunk["B"] + chunk["A"]).isin(acids.tolist())]
              for chunk in csv_chunks]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17619460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档