我将使用Python 2.7(Anaconda)处理表格数据。我已经加载了一个带有两列的文本文件,例如:
[[ 1. 8.]
[ 2. 4.]
[ 3. 1.]
[ 4. 5.]
[ 5. 6.]
[ 1. 9.]
[ 2. 0.]
[ 3. 7.]
[ 4. 3.]
[ 5. 2.]]
我的目标是计算第二列中与第一列唯一值匹配的所有值的平均值,例如1的平均值为8.5,2的平均值为2,3的平均值为4。 首先,我通过提取列并应用np.unique()来过滤第一列中的唯一值,得到数组“unique”。我创建了一个循环,当我定义唯一值时它可以工作:
mean= 0
values=[]
for i in range(0,len(first),1):
if first[i]==1:
values.append(second[i])
print(np.mean(values))
这里的first和second是特定的列名。现在我想让它们不那么具体化。我尝试过
mean = 0
values = []
means=[]
for i in unique:
for k in range(0,len(first),1):
if first[k]==i:
values.append(second[k])
mean = np.mean(values)
means.append(mean)
mean=0
values=[]
print(means)
但它只返回原始的第二列。有人有什么想法可以使这段代码不具体化吗?实际上,我有大约70k行,无法手动完成。