首页 > 解决方案 > 使用 pd.isnull 按列名迭代 pandas 数据帧

问题描述

我可以使用 for 循环来打印数据帧的每一行。

import pandas as pd

data = {"col1": [1.1, 2.2, 3.3]
      , "col2": [4.4, None, 6.6]}
csv = pd.DataFrame(data)

for i in range(len(csv)):
    col1 = csv["col1"][i]
    col2 = csv["col2"][i]
    print(col1, col2)

但是当我使用 pd.notnull 过滤数据框时,for循环会出错。

csv = csv[pd.notnull(csv["col2"])]

print("csv:{}".format(csv))
for i in range(len(csv)):
    col1 = csv["col1"][i]
    col2 = csv["col2"][i]
    print(col1, col2)

错误是

键错误:1

任何人都知道通过 pd.notnull 之后的列名来迭代数据帧。

标签: pandasfor-loopdataframepython-3.6

解决方案


推荐阅读