首页 > 解决方案 > 熊猫保存 to_csv 格式而不是制表符空格

问题描述

我想使用熊猫框架将一些数据写入 .dat 文件。保存不是其格式的问题。我使用过 sep = '\t' 但有时它只会在数据之间放置一个制表符。

我的代码如下所示:

data.reindex(columns = ['n','Burn_Gain','V','I','I_smooth']).to_csv(dat_file_path,index = False,
                                                                            header = False, sep = '\t')

结果数据:

1.0 1   0.01785000041127    5.435180664063e-06  5.435180664063e-06
1.0 1   0.01934999972582    5.679321289062e-06  5.679321289062e-06
1.0 1   0.02085000090301    5.89599609375e-06   5.89599609375e-06
1.0 1   0.02235000021756    6.11572265625e-06   6.11572265625e-06
1.0 1   0.0238499995321 6.4453125e-06   6.4453125e-06
1.0 1   0.0253500007093 6.658935546875e-06  6.658935546875e-06
1.0 1   0.02685000002384    6.771850585937e-06  6.771850585937e-06
1.0 1   0.02834999933839    7.015991210937e-06  7.015991210937e-06
1.0 1   0.02985000051558    7.232666015625e-06  7.232666015625e-06

为什么?我该如何解决这个问题?

我还尝试设置我的代码,以便每当第一列更改值时,保存数据文件都会添加一个空行。如果有人有比使用 f.readlines() 和循环更简洁的方法,请告诉我。谢谢!

标签: pythonpandas

解决方案


当你在你的眼中阅读它时,我认为它是文件中的标签字符。但实际上实际文件本身只是另存为\t

df_str = '''
1.0 1   0.01785000041127    5.435180664063e-06  5.435180664063e-06
1.0 1   0.01934999972582    5.679321289062e-06  5.679321289062e-06
1.0 1   0.02085000090301    5.89599609375e-06   5.89599609375e-06
1.0 1   0.02235000021756    6.11572265625e-06   6.11572265625e-06
1.0 1   0.0238499995321 6.4453125e-06   6.4453125e-06
1.0 1   0.0253500007093 6.658935546875e-06  6.658935546875e-06
1.0 1   0.02685000002384    6.771850585937e-06  6.771850585937e-06
1.0 1   0.02834999933839    7.015991210937e-06  7.015991210937e-06
1.0 1   0.02985000051558    7.232666015625e-06  7.232666015625e-06
'''
df = pd.read_csv(io.StringIO(df_str.strip()), sep='\s+', index_col=False, header=None)

df.to_csv('t1.csv', sep='\t', header=None)

# !cat t1.csv

list(open('t1.csv'))
# ['0\t1.0\t1\t0.01785000041127\t5.435180664063e-06\t5.435180664063e-06\n',
#  '1\t1.0\t1\t0.01934999972582\t5.679321289062e-06\t5.679321289062e-06\n',
#  '2\t1.0\t1\t0.02085000090301\t5.89599609375e-06\t5.89599609375e-06\n',
#  '3\t1.0\t1\t0.02235000021756\t6.11572265625e-06\t6.11572265625e-06\n',
#  '4\t1.0\t1\t0.0238499995321\t6.4453125e-06\t6.4453125e-06\n',
#  '5\t1.0\t1\t0.0253500007093\t6.658935546875e-06\t6.658935546875e-06\n',
#  '6\t1.0\t1\t0.02685000002384\t6.771850585937e-06\t6.771850585937e-06\n',
#  '7\t1.0\t1\t0.02834999933839\t7.015991210937e-06\t7.015991210937e-06\n',
#  '8\t1.0\t1\t0.02985000051558\t7.232666015625e-06\t7.232666015625e-06\n']

在此处输入图像描述


推荐阅读