小编use*_*167的帖子

选择 pandas 数据帧的 160 万行

我有一个包含约 230 万行的 csv 文件。我想保存数据帧内两列中具有非 nan 值的行的子集(~1.6M)。我想继续使用 pandas 来做到这一点。现在,我的代码如下所示:

import pandas as pd
catalog = pd.read_csv('catalog.txt')
slim_list = []
for i in range(len(catalog)):
    if (pd.isna(catalog['z'][i]) == False and pd.isna(catalog['B'][i]) == False):
        slim_list.append(i)
Run Code Online (Sandbox Code Playgroud)

catalog它保存具有非 nan 值的行。然后我用这些行作为条目创建一个新目录

slim_catalog = pd.DataFrame(columns = catalog.columns)
for j in range(len(slim_list)):
    data = (catalog.iloc[j]).to_dict()
    slim_catalog = slim_catalog.append(data, ignore_index = True)
pd.to_csv('slim_catalog.csv')
Run Code Online (Sandbox Code Playgroud)

原则上这应该可行。通过将每一行读入字典中,速度会加快一些。然而,执行所有 230 万行的时间太长了。有什么更好的方法来解决这个问题?

python dataframe pandas

5
推荐指数
1
解决办法
315
查看次数

标签 统计

dataframe ×1

pandas ×1

python ×1