我有一个包含3列的数据框,我使用其中一列作为索引来查找其他列中的相应值。如图所示。
loop
data = []
a,b,c = df.loc[df['W'].index][['W','X','Y']]
data.append({'W':a, 'X':b, 'Y':c,})
end loop
输出:
[{'W':'a', 'X':'b', 'Y':'c'}]
问题在于,它不是给我行中的值,而是给出了列的名称' W,X,Y'。我需要获取W,X和Y列中的值。
答案 0 :(得分:1)
如果需要为dict添加值,请使用:
data.append({'W':df.W.tolist(), 'X':df.X.tolist(), 'Y':df.Y.tolist()})
但是如果使用相同的输出:
data.append(df[['W','X','Y']].to_dict(orient='list'))
样品:
np.random.seed(100)
df = pd.DataFrame(np.random.randint(10, size=(5,3)), columns=list('WXY'), index=[2,3,4,5,6])
print (df)
W X Y
2 8 8 3
3 7 7 0
4 4 2 5
5 2 2 2
6 1 0 8
data = []
data.append({'W':df.W.tolist(), 'X':df.X.tolist(), 'Y':df.Y.tolist()})
print (data)
[{'X': [8, 7, 2, 2, 0], 'W': [8, 7, 4, 2, 1], 'Y': [3, 0, 5, 2, 8]}]
data = []
data.append(df[['W','X','Y']].to_dict(orient='list'))
print (data)
[{'X': [8, 7, 2, 2, 0], 'W': [8, 7, 4, 2, 1], 'Y': [3, 0, 5, 2, 8]}]