为什么循环里面保存的数据和循环外的不一样
时间: 2024-04-10 20:26:57 浏览: 74
kettle循环抽取表数据.zip
5星 · 资源好评率100%
循环中保存的数据和循环外的数据不一样的原因是因为在每次循环中,变量 `d` 的值都会被重新赋值,而在循环外部,只会保留最后一次循环中 `d` 的值。
在原始代码中,`d = d.isnull().sum()` 是在循环中对 `d` 进行操作并重新赋值的语句。每次循环都会计算当前 sheet 的空值数量,并将结果赋给 `d`。所以循环结束后,`d` 的值只是最后一个 sheet 的空值数量。
如果您想要保存每个 sheet 的空值数量,可以将结果存储在一个列表或字典中。以下是修改后的代码示例:
```python
import pandas as pd
filename = '0629慢阻肺居民随访表单数据明细v6(1).xlsx'
f = pd.ExcelFile(filename)
result = {} # 用字典保存每个 sheet 的空值数量
for sheet_name in f.sheet_names:
d = f.parse(sheet_name)
result[sheet_name] = d.isnull().sum()
# 打印每个 sheet 的空值数量
for sheet_name, d in result.items():
print(f"Sheet: {sheet_name}")
print(d)
```
在这个修改后的代码中,我们使用了一个字典 `result` 来保存每个 sheet 的空值数量。在每次循环中,将当前 sheet 的空值数量存储在字典中的对应键值对中。然后在循环结束后,我们遍历字典并打印每个 sheet 的空值数量。
这样,您就可以得到每个 sheet 的空值数量了。希望这个解决方案对您有帮助!如果还有其他问题,请随时提问。
阅读全文