いつも勉強させていただいてます。
AnacondaでPython2.7と3を使い分けています。
pandasのデータフレームで以下のようなものがあります。
In [45]: df_names.T Out[45]: 1 ./complex.2_P.pdb 2 ./complex.9_P.pdb 3 ./complex.7_P.pdb 4 ./complex.6_P.pdb 5 ./complex.5_P.pdb 6 ./complex.8_P.pdb 7 ./complex.4_P.pdb 8 ./complex.3_P.pdb 9 complex.10_P.pdb 10 complex.1-2_P.pdb 11 complex.2_P.pdb 12 complex.3_P.pdb 13 complex.4_P.pdb 14 complex.5_P.pdb 15 complex.6_P.pdb 16 complex.7_P.pdb 17 complex.7_P_P.pdb 18 complex.8_P.pdb 19 complex.9_P.pdb 20 complex.lig2_P.pdb Name: 0, dtype: object
これを各行5個ずつに複製し、以下の様にカラム1に縦に連結していきたいと考えています。
0 ./complex.2_P.pdb 1 ./complex.2_P.pdb 2 ./complex.2_P.pdb 3 ./complex.2_P.pdb 4 ./complex.2_P.pdb 5 ./complex.9_P.pdb 6 ./complex.9_P.pdb 7 ./complex.9_P.pdb 8 ./complex.9_P.pdb 9 ./complex.9_P.pdb 10 ... 11 ...
そこでまず、行列を入れ替えて5行以上にしたものを作成し、カラム1~20までを5行ずつ取り出し、カラム1に縦積みしてこうとしたのですが、range指定した範囲の最後の2行しか出力されませんでした。(range(19)にすると最後の2行、range(3)では最初の2行といった形)
解決方法を教えてください。また、ほかに簡便な方法があればお願いします。
In [46]: df_names.T Out[46]: 1 2 ... 19 20 0 ./complex.2_P.pdb ./complex.9_P.pdb ... complex.9_P.pdb complex.lig2_P.pdb 1 ./complex.2_P.pdb ./complex.9_P.pdb ... complex.9_P.pdb complex.lig2_P.pdb 2 ./complex.2_P.pdb ./complex.9_P.pdb ... complex.9_P.pdb complex.lig2_P.pdb 3 ./complex.2_P.pdb ./complex.9_P.pdb ... complex.9_P.pdb complex.lig2_P.pdb 4 ./complex.2_P.pdb ./complex.9_P.pdb ... complex.9_P.pdb complex.lig2_P.pdb 5 ./complex.2_P.pdb ./complex.9_P.pdb ... complex.9_P.pdb complex.lig2_P.pdb 6 ./complex.2_P.pdb ./complex.9_P.pdb ... complex.9_P.pdb complex.lig2_P.pdb 7 ./complex.2_P.pdb ./complex.9_P.pdb ... complex.9_P.pdb complex.lig2_P.pdb 8 ./complex.2_P.pdb ./complex.9_P.pdb ... complex.9_P.pdb complex.lig2_P.pdb 9 ./complex.2_P.pdb ./complex.9_P.pdb ... complex.9_P.pdb complex.lig2_P.pdb 10 ./complex.2_P.pdb ./complex.9_P.pdb ... complex.9_P.pdb complex.lig2_P.pdb
以下出力です。
(下書きだとcomplex.8とcomplex.9になっていますが、本文だと消えているように見えます。)
In [52]: for i in range(19): ...: if i % 2 == 1: ...: df_n=df_names ...: df_n=df_n.iloc[1:6,i].append(df_n.iloc[1:6,i+1],ignore_index=True) ...: else: ...: continue ...: df_n ...: Out[52]: 0 complex.8_P.pdb 1 complex.8_P.pdb 2 complex.8_P.pdb 3 complex.8_P.pdb 4 complex.8_P.pdb 5 complex.9_P.pdb 6 complex.9_P.pdb 7 complex.9_P.pdb 8 complex.9_P.pdb 9 complex.9_P.pdb dtype: object
以下の様に実行できました。
In [58]: data_list Out[58]: ['./complex.2_P.pdb', './complex.9_P.pdb', './complex.7_P.pdb', './complex.6_P.pdb', './complex.5_P.pdb', './complex.8_P.pdb', './complex.4_P.pdb', './complex.3_P.pdb', 'complex.10_P.pdb', 'complex.1-2_P.pdb', 'complex.2_P.pdb', 'complex.3_P.pdb', 'complex.4_P.pdb', 'complex.5_P.pdb', 'complex.6_P.pdb', 'complex.7_P.pdb', 'complex.7_P_P.pdb', 'complex.8_P.pdb', 'complex.9_P.pdb', 'complex.lig2_P.pdb', './complex.9_P.pdb'] In [60]: ret=pd.concat([data]*5,1).stack().reset_index(drop=True) In [61]: ret Out[61]: 0 ./complex.2_P.pdb 1 ./complex.2_P.pdb 2 ./complex.2_P.pdb 3 ./complex.2_P.pdb 4 ./complex.2_P.pdb 5 ./complex.9_P.pdb 6 ./complex.9_P.pdb 7 ./complex.9_P.pdb 8 ./complex.9_P.pdb 9 ./complex.9_P.pdb 10 ./complex.7_P.pdb 11 ./complex.7_P.pdb 12 ./complex.7_P.pdb 13 ./complex.7_P.pdb 14 ./complex.7_P.pdb 15 ./complex.6_P.pdb 16 ./complex.6_P.pdb 17 ./complex.6_P.pdb 18 ./complex.6_P.pdb 19 ./complex.6_P.pdb 20 ./complex.5_P.pdb 21 ./complex.5_P.pdb 22 ./complex.5_P.pdb 23 ./complex.5_P.pdb 24 ./complex.5_P.pdb 25 ./complex.8_P.pdb 26 ./complex.8_P.pdb 27 ./complex.8_P.pdb 28 ./complex.8_P.pdb 29 ./complex.8_P.pdb ... 75 complex.7_P.pdb 76 complex.7_P.pdb 77 complex.7_P.pdb 78 complex.7_P.pdb 79 complex.7_P.pdb 80 complex.7_P_P.pdb 81 complex.7_P_P.pdb 82 complex.7_P_P.pdb 83 complex.7_P_P.pdb 84 complex.7_P_P.pdb 85 complex.8_P.pdb 86 complex.8_P.pdb 87 complex.8_P.pdb 88 complex.8_P.pdb 89 complex.8_P.pdb 90 complex.9_P.pdb 91 complex.9_P.pdb 92 complex.9_P.pdb 93 complex.9_P.pdb 94 complex.9_P.pdb 95 complex.lig2_P.pdb 96 complex.lig2_P.pdb 97 complex.lig2_P.pdb 98 complex.lig2_P.pdb 99 complex.lig2_P.pdb 100 ./complex.9_P.pdb 101 ./complex.9_P.pdb 102 ./complex.9_P.pdb 103 ./complex.9_P.pdb 104 ./complex.9_P.pdb Length: 105, dtype: object In [62]: ret=pd.concat([data]*5).sort_index().reset_index(drop=True) In [63]: ret Out[63]: 0 ./complex.9_P.pdb 1 ./complex.9_P.pdb 2 ./complex.9_P.pdb 3 ./complex.9_P.pdb 4 ./complex.9_P.pdb 5 ./complex.2_P.pdb 6 ./complex.2_P.pdb 7 ./complex.2_P.pdb 8 ./complex.2_P.pdb 9 ./complex.2_P.pdb 10 complex.1-2_P.pdb 11 complex.1-2_P.pdb 12 complex.1-2_P.pdb 13 complex.1-2_P.pdb 14 complex.1-2_P.pdb 15 complex.2_P.pdb 16 complex.2_P.pdb 17 complex.2_P.pdb 18 complex.2_P.pdb 19 complex.2_P.pdb 20 complex.3_P.pdb 21 complex.3_P.pdb 22 complex.3_P.pdb 23 complex.3_P.pdb 24 complex.3_P.pdb 25 complex.4_P.pdb 26 complex.4_P.pdb 27 complex.4_P.pdb 28 complex.4_P.pdb 29 complex.4_P.pdb ... 75 ./complex.6_P.pdb 76 ./complex.6_P.pdb 77 ./complex.6_P.pdb 78 ./complex.6_P.pdb 79 ./complex.6_P.pdb 80 ./complex.5_P.pdb 81 ./complex.5_P.pdb 82 ./complex.5_P.pdb 83 ./complex.5_P.pdb 84 ./complex.5_P.pdb 85 ./complex.8_P.pdb 86 ./complex.8_P.pdb 87 ./complex.8_P.pdb 88 ./complex.8_P.pdb 89 ./complex.8_P.pdb 90 ./complex.4_P.pdb 91 ./complex.4_P.pdb 92 ./complex.4_P.pdb 93 ./complex.4_P.pdb 94 ./complex.4_P.pdb 95 ./complex.3_P.pdb 96 ./complex.3_P.pdb 97 ./complex.3_P.pdb 98 ./complex.3_P.pdb 99 ./complex.3_P.pdb 100 complex.10_P.pdb 101 complex.10_P.pdb 102 complex.10_P.pdb 103 complex.10_P.pdb 104 complex.10_P.pdb Name: 0, Length: 105, dtype: object

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/12 02:06
2019/04/12 02:10
2019/04/12 02:13