2014-11-21 2 views
0

На данный момент я пытаюсь написать словарь в файл (точно так же, как файл читается). Я думал, что использование панд было хорошей идеей (поскольку я также использую его для чтения того же файла), но это не делает то, что я хочу.словарь python для файла

Мои данные выглядит коснуться так:

dict = {'x': np.array([1,2,3,4,5,etc.]), 'h': np.array([4,5,6,7,8,etc.])} 

Я хочу, чтобы эти данные должны быть записаны в файл в следующем формате (так как я получить его таким образом, а):

x   h 
1   4 
2   5 
3   6 
4   7 
5   8 
etc.  etc. 

Я попробовал это, который работает, но не так, как я хочу это:

a = pd.Series(dict) 
a.to_csv(filename, sep='\t') 

Любые советы о том, как это сделать (или это проще написать это, используя только python?)

+0

«Я пробовал, что работает, но не так, как я хочу:« Что происходит вместо этого? – YXD

+0

@MrE Я только что попробовал, он пишет файл с двумя строками: 'h \t [4 5 6 7 8]' и 'x \t [1 2 3 4 5]'. – Carsten

ответ

1

Поскольку у вас есть несколько серий данных, для вас в Pandas вам нужна правильная структура данных: DataFrame. Посмотрев на options for writing CSV files, я вижу, что для вашего желаемого результата мне также нужно передать аргумент index=False (иначе он будет писать номера строк в первом столбце).

import pandas as pd 
d = {'x': np.array([1,2,3,4,5]), 'h': np.array([4,5,6,7,8])} 

a = pd.DataFrame(d) 
a.to_csv("testfile.txt", sep="\t", index=False) 

Этот код производит следующий текстовый файл:

h x 
4 1 
5 2 
6 3 
7 4 
8 5 

PS: Не создать переменную с именем dict. Он перезапишет тип.

Смежные вопросы