以上代码还是出现相同问题
时间: 2024-09-20 17:08:45 浏览: 23
如果上面的修改仍然出现问题,可能是你在试图访问 DataFrame 的列属性之前,尚未完成所有行的填充。为了确保每一行都被正确填充,你需要在添加完一行后再移动到下一行。这里是一个完整的修复版本:
```python
mutual_info_values_list = []
for i in range(len(data.columns)):
row = [] # 创建一个新的行
for j in range(i):
X_column = data[:, i]
Y_column = data[:, j]
mi = mutual_info_score(X_column, Y_column)
row.append(mi) # 将计算的结果添加到当前行
mutual_info_values_list.append(row) # 完成当前行后,添加到列表中
mutual_info_values = pd.DataFrame(mutual_info_values_list, index=data.columns, columns=data.columns)
# 现在你可以检查 mutual_info_values 是否有 `.columns` 属性,应该已经解决了先前的问题
print(mutual_info_values.columns)
```
这个版本会确保每个 `.append()` 操作都在创建新的 DataFrame 行之后进行,因此不会报错。
阅读全文