2016-04-26 3 views
0

У меня есть список кадров данных, которые я перетасовываю, а затем я хочу сохранить вывод в виде csv. Для этого я пытаюсь добавить этот список пустого фрейма данных:Как сохранить список dataframes в csv

l1=[year1, year2,..., year30] 
shuffle (l1) 
columns=['year', 'day', 'tmin', 'tmax', 'pcp'] 
index=np.arange(10957) 
df2=pd.DataFrame(columns=columns, index=index) 
l1.append(df2) 

Этого результат в пустых кадрах с кучей Nans. Мне не обязательно добавлять свой перетасованный список в dataframe, мне просто нужно сохранить его как csv, и это единственный способ найти.

+0

Что находится в 'l1'? –

+0

l1 - это всего лишь список данных. –

+0

Итак, вы хотите создать единый csv из всех данных? –

ответ

2

Я думаю, что вам нужно concat с to_csv если l1 является list из DataFrames:

print pd.concat(l1).to_csv('filename') 
+0

О, да, это прекрасно работает! Спасибо –

+0

Супер, Если мой ответ был полезен, не забудьте [принять] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) его. Благодарю. – jezrael

1

Альтернативой выбранного ответа, чтобы открыть CSV и добавить один dataframe в то время внутри цикла. Это может быть на порядок быстрее в зависимости от размера данных.

f = open(filename, 'a') 
for df in l1: 
    df.to_csv(f) 
f.close() 
Смежные вопросы