3 回答
TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
據(jù)我了解,您想按索引 [0] 的值將列表拆分為兩個(gè)列表。如果是 1 則添加到cond1' 列表中,否則添加到cond2' 列表中。您可以使用以下代碼實(shí)現(xiàn)此目的:
cond1=[]
cond2=[]
for item in listoflists:
if item[0] == 1:
cond1.append(item)
else
cond2.append(item)
TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超17個(gè)贊
使用簡單的循環(huán),您可以顯示如下方式:
data=[[1, 99, 400],
[1, 95, 200],
[2, 92, 100],
[1, 85, 500],
[2, 88, 300]]
groups = [], []
for row in data:
groups[row[0]-1].append(row)
for group in groups:
print(np.mean(group, axis=0)) # means of each column by group
但是對(duì)于這種類型的任務(wù),通常最好使用 pandas 數(shù)據(jù)框
df = pd.DataFrame(data, columns=["stim", "acc", "mrt"])
for value in df.stim.unique():
print(df[df.stim == value].mean())
或者
for i, group in df.groupby("stim"):
print(i, group.mean())
(我假設(shè)您想要每個(gè)組中每列的平均值。)
TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超2個(gè)贊
使用熊貓groupby:
>>> a = [[1, 99, 400],
[1, 95, 200],
[2, 92, 100],
[1, 85, 500],
[2, 88, 300]]
>>> df = pd.DataFrame(a)
>>> df
0 1 2
0 1 99 400
1 1 95 200
2 2 92 100
3 1 85 500
4 2 88 300
>>> data = df.groupby([0])
>>> cond = data.groups
>>> df.loc[cond[1]]
0 1 2
0 1 99 400
1 1 95 200
3 1 85 500
>>> df.loc[cond[2]]
0 1 2
2 2 92 100
4 2 88 300
添加回答
舉報(bào)
