按字符串过滤块
Posted
技术标签:
【中文标题】按字符串过滤块【英文标题】:Filtering Chunks by A string 【发布时间】:2017-06-30 15:14:43 【问题描述】:我有 60M 多行的 csv 文件。我只对其中的一部分感兴趣,并希望将它们放入数据框中。
这是我正在使用的代码:
iter_csv = pd.read_csv('/Users/xxxx/Documents/globqa-pgurlbymrkt-Report.csv', iterator=True, chunksize=1000)
df = pd.concat([chunk[chunk['Site Market (evar13)'].str.contains("Canada", na=False)] for chunk in iter_csv])
在这里回答:pandas: filter lines on load in read_csv
我收到以下错误:
AttributeError: Can only use .str accessor with string values, which use np.object_ dtype in pandas
似乎无法弄清楚出了什么问题,希望在这里得到指导。
【问题讨论】:
【参考方案1】:首先尝试验证表示字符串的数据。 您期望使用 .contains() 的最后一个块返回什么? 似乎数据可能丢失了,如果是这样,那么它就不是字符串了。
【讨论】:
如果是这种情况,是否有与 Chunk 函数等效的 dropna?我知道它不是数据框,可能没有这个 恐怕我不知道,我对 dropna 的经验非常有限。看来您仍然可以使用 pandas.pydata.org/pandas-docs/stable/generated/… 从每个帧中请求任意样本以上是关于按字符串过滤块的主要内容,如果未能解决你的问题,请参考以下文章