2017-04-19 7 views
0

私は問題に苦しんでいます。データフレームの列を行列Aijに変換する

私はデータセット怒鳴るを持っていると私は同じようAtom_combine列から行列を作成しよう:

____|N16|CA16|C16| ... |C18|O18|N19 
N16 
CA16 
C16 
... 
C18 
O18 
N19_______________________________ 

は私が開始する必要があります例や方向を喜ば得ることができますか?

各交点は最終的に各原子間の距離になります(距離= sqrt((x1-x2)^ 2 +(y1-y2)^ 2 +(z1-z2)^ 2))。

私は(あなたが距離行列を見つけるためにcdistを使用することができますね...

sample dataset

答えて

1

を距離のためのコンセプトの計算証明を完了するために管理が、行列を作成する方法を見つけることができませんアレイ)。

from scipy.spatial.distance import cdist 
import numpy as np 

X = np.array([[0, 1, 0], [1, 0, 1], [2, 1, 2]]) 
D = cdist(X, X, metric='euclidean') # your distance matrix 

だからたとえば、配列XdfがあなたのデータフレームですX = np.array(df[['x_coord', 'y_coord', 'z_coord']])です。あなたにもデータフレームの列としてデータフレームとrownamesから列としてCOLNAMESを有するマトリックスの作成...問題はない

Df = pd.DataFrame(D, index=list(df['Atom_combine']), columns=list(df['Atom_combine'])) 
+0

の距離として、対応付け指標とAtom_combineの列のデータフレームに変換することができます... – sb0709

+0

行列を持った後、各Aijの距離で行列を埋めています – sb0709

+0

代わりにpandasデータフレームを使用できますか?私はあなたのインデックスと 'Atom_combine'カラムを持っているように私のソリューションを更新しました – titipata

関連する問題