2013-10-10 15 views
6

Tôi muốn ghi dữ liệu mà tôi phải tạo một biểu đồ vào một tệp csv. Tôi có danh sách 'thùng' của mình và tôi có danh sách 'tần số' của mình. Ai đó có thể cho tôi một số trợ giúp để viết chúng vào một csv trong cột tương ứng của họ?Làm cách nào để ghi dữ liệu từ hai danh sách vào các cột trong csv?

thùng tức là trong cột đầu tiên và tần số ở cột thứ hai

+1

Bạn đã cố gắng gì cho đến nay? –

+0

Được bình chọn cho điều gì? –

+0

Loại dữ liệu nào có trong danh sách thùng và tần số (số, chuỗi, danh sách, từ điển, thể hiện của các lớp, v.v.)? Bạn sẽ nhận được câu trả lời tốt hơn chi tiết hơn bạn đưa vào câu hỏi của mình. – martineau

Trả lời

12

Ví dụ này sử izip (thay vì zip) để tránh việc tạo ra một danh sách mới và cần phải giữ nó trong bộ nhớ. Nó cũng sử dụng Python's built in csv module, đảm bảo thoát đúng cách. Như là một tiền thưởng thêm nó cũng tránh sử dụng bất kỳ vòng, do đó, mã là ngắn và súc tích.

import csv 
from itertools import izip 

with open('some.csv', 'wb') as f: 
    writer = csv.writer(f) 
    writer.writerows(izip(bins, frequencies)) 
+0

Cảm ơn, điều này đã hiệu quả. Tôi sẽ cố gắng và thêm nhiều chi tiết hơn vào câu hỏi trong tương lai, trong tầm nhìn tôi có thể thấy nó mơ hồ như thế nào. –

2

bạn nên sử dụng zip() http://docs.python.org/2/library/functions.html#zip

cái gì đó như:

f=open(my_filename,'w') 
for i,j in zip(bins,frequencies): 
    f.write(str(i)+","+str(j)) 
f.close() 
+1

Vì anh ta không nói với chúng tôi bất cứ điều gì về những gì các nhãn bin trông như thế, tôi chắc chắn muốn sử dụng 'csv' ở đây. Nếu không, một thùng như '" a = 0-10, b = 0-10 "' sẽ kết thúc dưới dạng hai cột. – abarnert

+0

@abarnert: đã đồng ý – Pixou

3

Hm, tôi thiếu cái gì? Điều này nghe khá đơn giản:

bins = [ 1,2,3,4,5 ] 
freq = [ 9,8,7,6,5 ] 

f = open("test.csv", "w") 

for i in xrange(len(bins)): 
    f.write("{} {}\n".format(bins[i], freq[i])) 

f.close() 
Các vấn đề liên quan