2017-03-07 42 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]