data=pd.read_csv('D:/PythonKS/超市购买记录.txt',header=None) record=['ID','土豆','排骨','茄子','袜子','西红柿','酸奶','鞋子','鸡蛋'] R=dict() for i in range(len(record)): x=np.zeros((len(data))) li=list() for k in range(len(data.iloc[0,:])): s=data.iloc[:,k]==record[i] li.extend(list(s[s.values==True].index)) x[li]=1 R.setdefault(record[i],x) Data=pd.DataFrame(R) print(Data),,,为什么这段代码没有遍历成功,不能将对应的x 数组位置设置为1,,,怎么修改
时间: 2023-12-28 07:05:38 浏览: 60
解决pandas read_csv 读取中文列标题文件报错的问题
首先,你需要检查一下读入的数据文件是否正确,如果文件路径有误,那么程序就无法正确读入数据。另外,你在定义变量 `x` 的时候,将其定义为了一维数组,但是在循环中需要将其赋值为二维数组,这个需要注意一下。下面是修改后的代码:
```
import numpy as np
import pandas as pd
data = pd.read_csv('D:/PythonKS/超市购买记录.txt', header=None)
record = ['ID', '土豆', '排骨', '茄子', '袜子', '西红柿', '酸奶', '鞋子', '鸡蛋']
R = dict()
for i in range(1, len(record)):
x = np.zeros((len(data), 1))
li = list()
for k in range(len(data.iloc[:, i])):
s = data.iloc[:, i] == record[i]
li.extend(list(s[s.values == True].index))
x[li] = 1
R.setdefault(record[i], x)
Data = pd.DataFrame(R)
print(Data)
```
在这里,我们将变量 `x` 定义为了二维数组,并且在循环中将其赋值为一维数组。同时,我们将循环的起始下标设为了 1,因为第一列是 ID 列,不需要进行遍历。如果还有问题,可以再次提问。
阅读全文