2017-03-07 44 views
1

當我運行下面的代碼時,我只獲取我的CSV文件的第一行(我的名字行)。我能做些什麼來確保下面的代碼返回我的整個CSV?無法返回整個CSV數據幀

import csv 
import pandas as pd 

import numpy as np 

def open_elves(): 

    with open('elves.csv') as csvjawn: 
     readCS = csv.reader(csvjawn, delimiter = ',') 
     for row in readCS: 
      return row     
x = pd.DataFrame(open_elves()) 

print (x) 

回答

3

返回總是立即退出循環。嘗試

def f(): 
    for i in range(100): 
     return i 

f() 

你的流程應該是這樣的卻是這樣的:

with open('elves.csv') as csvjawn: 
    readCS = csv.reader(csvjawn, delimiter = ',') 
    data = [row for row in readCS] 

它使用您可能需要研究,如果你以前沒有見過一個列表理解。

5

使用由熊貓API

df = pd.read_csv('elves.csv') 
-1

我不會用return來完成你想做的事提供的read_csv功能。

計算器的同事(abarnert)的響應:

with open('old.csv', 'rb') as oldf, open('new.csv', 'wb') as newf: 
    old_reader = csv.reader(oldf) 
    writer = csv.writer(newt) 
    for row in old_reader: 
     writer.writerow(transform(row)) 
with open('new.csv', 'rb') as newf: 
    new_reader = csv.reader(newf) 
    for row in new_reader: 
     print row 

網址:CSV reader object not reading entire file [Python]