2017-03-05 10 views
1

私は3つの列を含むデータフレームを持っており、他の列の対応する値を見つけるためのインデックスとして列の1つを使用しています。示されるように。pandas dataframe .loc行の値

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」の名前を与えることです。

data.append({'W':df.W.tolist(), 'X':df.X.tolist(), 'Y':df.Y.tolist()}) 

しかし、同じ出力を使用する場合は次のとおりです:

data.append(df[['W','X','Y']].to_dict(orient='list')) 

サンプルIは、のdictに値を追加使用が必要な場合は、列W、XとYの値

+0

IIUCには 'data.append({'W':df.W.tolist()、 'X':df.X.tolist()、 'Y':df.Y.tolist()})' – jezrael

+0

が必要ですあなたは働いた! – magicsword

答えて

1

を取得する必要があります:

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]}]