为何Pandas query筛选后的DataFrame循环仅输出列名而非数据行?
解决Pandas遍历筛选后DataFrame只输出列名的问题
直接遍历Pandas的DataFrame对象时,默认迭代的是列名,而非数据行——这就是你遍历nan_val_array只看到列名,看不到16000行数据的原因。
以下是几种正确遍历数据行的方法:
方法1:用iterrows()遍历行(带索引)
nan_val_array = data.query("year_of_release.isna()") # index为行索引,row是存储该行数据的Series对象 for index, row in nan_val_array.iterrows(): print(row) # 如需单独获取某列值,比如name列:print(row['name'])
方法2:用itertuples()遍历行(效率更高)
nan_val_array = data.query("year_of_release.isna()") # row为命名元组,可通过属性直接访问列值 for row in nan_val_array.itertuples(): print(row) # 例如获取platform列:print(row.platform)
方法3:直接遍历行的数组形式
nan_val_array = data.query("year_of_release.isna()") # 每行以列表/数组形式返回 for row in nan_val_array.values: print(row)
如果只是想快速查看筛选结果,无需遍历,直接打印nan_val_array即可看到数据预览,或用nan_val_array.head()查看前5行数据。
内容的提问来源于stack exchange,提问作者Maks V. Zaikin
相关产品推荐
相关产品推荐

