Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫数据帧与sep='\n';但不是sep='\t';_Python_Python 2.7_Pandas_Csv - Fatal编程技术网

Python 熊猫数据帧与sep='\n';但不是sep='\t';

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+"

我试图将我的大数据框打印到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+"      
"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文件中的前十行,但可以压缩在一起(而不是用制表符分隔)@jezraelWhat
print(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)