Python 熊猫数据帧与sep='\n';但不是sep='\t';
我试图将我的大数据框打印到csv文件,但选项卡分隔Python 熊猫数据帧与sep='\n';但不是sep='\t';,python,python-2.7,pandas,csv,Python,Python 2.7,Pandas,Csv,我试图将我的大数据框打印到csv文件,但选项卡分隔sep='\t'不起作用。然后我用换行符sep='\n'进行测试,似乎工作正常,用换行符打断所有元素。这里可能出了什么问题 代码非常简单,就像 df_M.to_csv('report'+filename, header=True, sep='\t', index=False) 数据示例(蛋白质列很长),我用| "protein | cl | pept | [M] | [M+1H+]1+ | [M+2H+]2+"
sep='\t'
不起作用。然后我用换行符sep='\n'
进行测试,似乎工作正常,用换行符打断所有元素。这里可能出了什么问题
代码非常简单,就像
df_M.to_csv('report'+filename, header=True, sep='\t', index=False)
数据示例(蛋白质列很长),我用|
"protein | cl | pept | [M] | [M+1H+]1+ | [M+2H+]2+"
"ALBU_HUMAN_UPS Serum albumin (Chain 26-609) - Homo sapiens (Human)| 0| AWAVAR| 672.37072| 673.378| out-of-range"
"ALBU_HUMAN_UPS Serum albumin (Chain 26-609) - Homo sapiens (Human)| 0| TPVSDR| 673.3394900000002| 674.3467700000002| out-of-range"
"ALBU_HUMAN_UPS Serum albumin (Chain 26-609) - Homo sapiens (Human)| 0| NYAEAK| 694.3285900000001| 695.3358700000001| out-of-range"
"
你可以试试看
df_M.to_csv('report'+filename, header=True, sep='\t', index=False, encoding='utf-8')
你也可以在这里看到
或者可能是版本问题,因为我无法重现该问题,请参见pd.\uuuuu version\uuuuu
,前提是最后一个是“0.21.0”
希望这是有用的有问题所有行都在
“
中,然后得到一列数据帧
因此,对于QUOTE_NONE
,需要quoting=3
,然后通过以下方式删除尾随的“
:
另一种解决方案是将数据读取到一列,然后:
最后一点很好:
df_M.to_csv('report'+filename, header=True, sep='\t', index=False)
是否将数据保存为.tsv格式? 您的数据是tsv文件,因为您正在用“\t”分隔数据,它是选项卡。 csv文件必须用“,”分隔 如果要以.csv格式保存数据,需要用“,”分隔
csv RFC的链接 嗯,对不起,我想你在阅读csv方面有问题。如果只筛选前10行,它也会失败吗?通过
df_M.iloc[:10].to_csv('report'+filename,header=True,sep='\t',index=False)
你的意思是如果我用你的例子将我的替换为_csv
?它起作用了。我可以得到csv文件中的前十行,但可以压缩在一起(而不是用制表符分隔)@jezraelWhatprint(df.columns.tolist())
?似乎所有数据都在一列中存在问题。
df = pd.read_csv('test.csv', sep='^')
cols = df.columns.str.split('|').tolist()
df_M = df.iloc[:, 0].str.split('|', expand=True)
df_M.columns = cols
print (df_M)
protein cl pept \
0 ALBU_HUMAN_UPS Serum albumin (Chain 26-609) - ... 0 AWAVAR
1 ALBU_HUMAN_UPS Serum albumin (Chain 26-609) - ... 0 TPVSDR
2 ALBU_HUMAN_UPS Serum albumin (Chain 26-609) - ... 0 NYAEAK
[M] [M+1H+]1+ [M+2H+]2+
0 672.37072 673.378 out-of-range
1 673.3394900000002 674.3467700000002 out-of-range
2 694.3285900000001 695.3358700000001 out-of-range
df_M.to_csv('report'+filename, header=True, sep='\t', index=False)