私はかなり長い間検索しましたが、同様の質問は見つかりませんでした。もしあれば教えてください!
現在、1つのデータフレームをn個のデータフレームに分割しようとしています。nは元のデータフレームの列数と同じです。結果として得られるすべての新しいデータフレームは、常に元のデータフレームの最初の列を保持する必要があります。たとえば、さらにアクセスするために、すべてのトゲッターをリストに追加します。
私の意図を視覚化するために、ここに簡単な例を示します。
>> original df
GeneID A B C D E
1 0.3 0.2 0.6 0.4 0.8
2 0.5 0.3 0.1 0.2 0.6
3 0.4 0.1 0.5 0.1 0.3
4 0.9 0.7 0.1 0.6 0.7
5 0.1 0.4 0.7 0.2 0.5
私の希望する出力は次のようになります。
>> df1
GeneID A
1 0.3
2 0.5
3 0.4
4 0.9
5 0.1
>> df2
GeneID B
1 0.2
2 0.3
3 0.1
4 0.7
5 0.4
....
以下同様に、元のデータフレームのすべての列がカバーされるまで続きます。より良い解決策は何でしょうか?
を使用df.columns
してすべての列名を取得し、サブデータフレームを作成できます。
outdflist =[]
# for each column beyond first:
for col in oridf.columns[1:]:
# create a subdf with desired columns:
subdf = oridf[['GeneID',col]]
# append subdf to list of df:
outdflist.append(subdf)
# to view all dataframes created:
for df in outdflist:
print(df)
出力:
GeneID A
0 1 0.3
1 2 0.5
2 3 0.4
3 4 0.9
4 5 0.1
GeneID B
0 1 0.2
1 2 0.3
2 3 0.1
3 4 0.7
4 5 0.4
GeneID C
0 1 0.6
1 2 0.1
2 3 0.5
3 4 0.1
4 5 0.7
GeneID D
0 1 0.4
1 2 0.2
2 3 0.1
3 4 0.6
4 5 0.2
GeneID E
0 1 0.8
1 2 0.6
2 3 0.3
3 4 0.7
4 5 0.5
上記のfor
ループは、リスト内包表記としてより簡単に記述することもできます。
outdflist = [ oridf[['GeneID', col]]
for col in oridf.columns[1:] ]
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加