如何在写入csv文件时格式化pandas数据帧?

时间:2017-01-10 09:44:22

标签: python pandas export-to-csv

我有一个带有以下数据的Pandas数据框

0 5
1 7
2 3

第一列是索引。

将这个写入csv文件(空格分隔)的最简单方法是什么,所以输出看起来像这样?

|index 0 |features 5
|index 1 |features 7
|index 2 |features 3

通过csv文件,我的意思是写一个这样的文件:

test.to_csv('test_map2.txt', sep=' ', header=None, index=False)

2 个答案:

答案 0 :(得分:1)

您可以按照以下步骤进行操作

test.index = test.index.map(lambda x:"|index " + str(x))
test.ix[:,0] = test.ix[:,0].apply(lambda x:'|features ' + str(x))
test.to_csv('test_map2.txt', sep=' ', header=None, index=False)

答案 1 :(得分:0)

将索引作为csv中的隐式列:

import pandas as pd
import io
df = pd.DataFrame(dict(data=[5, 7, 3]))
with io.open('df.csv', 'wb') as file: df.to_csv(file, header=False)

给出

0,5
1,7
2,3

或者如果您有更多有趣的索引值,请使用

import pandas as pd
import io
df = pd.DataFrame(dict(data=[5, 7, 3]))
df.reset_index(inplace=True)
with io.open('df.csv', 'wb') as file: df.to_csv(file)

给出了

,index,data
0,0,5
1,1,7
2,2,3

获取空间使用

import pandas as pd
import io
df = pd.DataFrame(dict(data=[5, 7, 3]))
df.index.rename
with io.open('df.csv', 'wb') as file: df.to_csv(file, sep=" ", header=False)

给出了

0 5
1 7
2 3

虽然空间可能最好避免。

|header的相似之处可能是

import pandas as pd
import io
df = pd.DataFrame(dict(data=[5, 7, 3]))
df.index.rename
df.reset_index(inplace=True)
for col in df.columns:
    df[col] = df[col].apply(lambda x: '|' +  col + ' ' + str(x))
with io.open('df.csv', 'wb') as file: df.to_csv(file, sep=" ", header=False, index=False, quotechar=' ')

 |index  0   |data  5 
 |index  1   |data  7 
 |index  2   |data  3