我已经创建了一个python pandas数据帧对象,现在我正试图将其写出csv。下面的命令可以在Windows中运行,但是当我在Unix中对完全相同的数据运行完全相同的代码时,列标题在写入csv后不会与列对齐。当我从命令行运行df时,它在Python中看起来很好(例如,df[“somecolumn”]显示了我所期望的)。有什么想法吗?在
df.to_csv(str(outfile), sep=",", header=True, index=False, na_rep="NA", cols=firstcols)
编辑:下面是我的输入,我将通过第一列“VAR”合并这些输入:
^{pr2}$这是我的python脚本
import csv
import pandas
import glob
from glob import iglob
inpath = '*.tsv'
outfile ="merged.out"
merged = pandas.concat([pandas.read_csv(f, sep='\t', parse_dates=False) for f in glob.iglob(inpath)], axis=0)
dfcols = merged.columns.tolist()
firstcols = ['VAR', 'CHROM', 'POS', 'REF', 'ALT'] #preserve order of first 5 columns only
for d in set(dfcols):
if d not in firstcols:
firstcols.append(d)
merged.to_csv(str(outfile), sep="\t", header=True, index=False, na_rep="NA", cols=firstcols)
以下是截断输出的一些外观,以说明标头如何不匹配:
> more merged.out
VAR CHROM POS REF ALT AC AF IUC PU P RFG IRF IPU IGN GI
NA NA T 1 NA NONE(dist=NONE) . intergenic ncRNA 0.1383 12892 NA TGG NA 1:12892:TGG:T
NA NA C 1 NA WASH7P . ncRNA ncRNA 0.5863 14397 NA CTGT NA 1:14397:CTGT:C
但是,在Python环境中,这些列看起来好像被正确地注释了?我被难住了
>>> merged['VAR']
0 1:12892:TGG:T
1 1:14397:CTGT:C
2 1:17084:GGT:G
3 1:17421:ATG:A
0 1:14567:G:GAT
1 1:14670:TG:T
2 1:14745:GGC:G
3 1:14905:GA:G
0 21:10862612:G:A
1 21:10862618:T:C
2 21:10862623:T:C
3 21:10862624:G:T
目前没有回答
相关问题 更多 >
编程相关推荐