私のコードでは、複数のファイルをデータフレームに結合し、NaN 値をゼロに変換します。コードでは、2 つの列 (ゲノムとコンティグ) を新しい列 (ソース) に結合していますが、データフレームはどこかで列のコンティグを整数から浮動小数点に変換します。私の入力ファイルは次のようになります
AAA 1 345
AAB 2 344
出力は次のようになります。
AAA_1.0 345
AAB_2.0 344
そして、私はそれを好きになりたい
AAA_1 345
AAB_2 344
私のコードは非常に長いため、コード全体とすべてのサンプル ファイルをこのサイトに配置することはできませんが、コードの中でこれが発生した可能性がある部分は次のとおりです。誰かが問題の内容を理解するには、これで十分だと思います。
#import contig length
df5bb = pd.read_csv('count_contiglength.out', header=None, delim_whitespace=True, names = ["genome", "contig", "contig_length"])
df5bb['source'] = df5bb.genome.astype(str).str.cat(df5bb.contig.astype(str), sep='_')
df5bb = df5bb.set_index('source')
df5b = pd.merge(df5a, df5bb, how='outer')
df5b['source'] = df5b.genome.astype(str).str.cat(df5b.contig.astype(str), sep='_')
nan_cols = df5b.columns[df5b.isnull().any(axis=0)]
for col in nan_cols:
df5b[col] = df5b[col].fillna(0).astype(int)
#import contigIDnumbers
df5cc = pd.read_csv('contigID.out', header=None, delim_whitespace=True, names = ["genome", "contig", "contigID"])
df5cc['source'] = df5cc.genome.astype(str).str.cat(df5cc.contig.astype(str), sep='_')
df5cc = df5cc.set_index('source')
df5c = pd.merge(df5b, df5cc, how='right')
df5c['source'] = df5c.genome.astype(str).str.cat(df5c.contig.astype(str), sep='_')
マージ後、少なくとも 1 つNaN
が column に表示されると思いますgenome
。
だからもう一度必要:
df5b['genome'] = df5b['genome'].fillna(0).astype(int)
タイプのプロモーションを確認してください-int
に変換されfloat
ます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加