forループの出力をpandasデータフレームに書き込むにはどうすればよいですか?
入力データは、データフレーム(df_elements)のリストです。
[ seq score status
1652 TGGCTTCGATTTTGTTATCGATG -0.22 negative
1277 GTACTGTGGAATCTCGGCAGGCT 4.87 negative
302 CCAAAGTCTCACTTGTTGAGAAC -4.66 negative
1756 TGGCGGTGGTGGCGGCGCAGAGC 1.55 negative
5043 TGACGAAACATCTTATAAAGGAA 1.96 negative
3859 CAGAGCTCTTCAAACTTAAGAAC -0.39 negative
1937 GTATGCTTGTGCTTCTCCAAAAA -0.91 negative
2805 GGCCGGCCTGTGGTCGACGGGGA -3.26 negative
3353 CCGATGGGC -1.97 negative
5352 ACTTACTATTTACTGATCAGCAC 3.53 negative
5901 TTGAGGCTCTCCTTATCCAGATT 6.37 negative
5790 AAGGAAACGTGTAATGATAGGCG -2.69 negative, seq score status
2197 CTTCCATTGAGCTGCTCCAGCAC -0.97 negative
1336 CCAAATGCAACAATTCAAAGCCC -0.44 negative
4825 CAATTTTGT -6.44 negative
4991 ATACTGTTTGCTCACAAAAGGAG 2.15 negative
1652 TGGCTTCGATTTTGTTATCGATG -0.22 negative
1964 ACCACTTTGTGGACGAATACGAC -4.51 negative
4443 TTCCTCGTCTAGCCTTTCAGTGC 3.05 negative
4208 TGGCTGTGAACCCCTATCAGCTG 2.70 negative
212 CTGTCGTTTCAATGTTTAAGATA 6.43 negative
775 GCTTTAAGT 0.06 negative
3899 GAGCAAAGC -6.61 negative
以下のforループの出力をデータフレームに書き込もうとしています。空のリスト(データ)を作成し、data.appendを使用して行ごとの出力を追加してみました。タイプ ""のオブジェクトを連結できないなどのエラーが発生します。
コンソールに出力を出力するコードを以下に示します。
cut_off = [0,1,2]
for co in cut_off:
for df in df_elements:
print co, "\t", str((df['score'] > co).sum())
コードは、cut_off値を列スコアと比較し、各データフレーム要素の合計を出力する必要があります。スコアはcut_offよりも大きくなります。
出力は次のようになります。
cutoff number
0 5 #for first dataframe element
0 5 #for second dataframe element
# create empty lists for cutoff and number
cutoff_list = []
number_list = []
# loop through cutoff values and dataframes, to populate your lists
for co in cut_off:
for df in df_elements:
cutoff_list.append(co)
number_list.append((df['score'] > co).sum())
# create dataframe from your lists
df = pd.DataFrame(list(zip(cutoff_list , number_list)),
columns =['cutoff', 'number'])
# get your desired output
print(df)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加