ref
をpd.DataFrame
xxx
とし、NaN
をスキップして行列を埋めたいとします。行列をpandas.DataFrameのデータで塗りつぶすNaN
print xxx
OUT >>
intensity name rowtype1 rowtype2
0 100 A 1 4.0
1 200 A 2 NaN
2 300 B 3 5.0
そして私は2 rowtype
を有するref[rowtype,col] = intensity
によって行列を埋めます。
ref = np.zeros(shape=(7,4))
for idx, inte, name, r1, r2 in xxx.itertuples():
ref[r1,idx] = inte
ref[r2,idx] = inte # error because of NaN in rowtype2
print ref
ここでNaN
をスキップできますか? drop.na()
を使用する方法はわかりますが、rowtype2
とintensity
の新しいデータフレームを作成する必要があります。私は速く簡単な方法を持っています。NaN
をintensity = 200
に、次にrowtype2 = 5
をintensity = 300
にジャンプするだけです。
追加情報:ここでは
1)xxx
prot = ['A','A','B']
calc_m = [1,2,3]
calc_m2 = [4, np.nan,5]
inte = [100,200,300]
xxx = pd.DataFrame({'name' : pd.Series(prot),
'rowtype1': pd.Series(calc_m),
'rowtype2': pd.Series(calc_m2),
'intensity': pd.Series(inte)
})