2016-07-24 4 views
0

Я использовал панд для загрузки данных из файла dataSource.cvs:есть ли какой-либо способ прямого чтения Dataframe Pandas в качестве обработчика файлов?

DF = pd.read_csv('dataSoruce.csv')

В панд я могу очистить данные, как заполнение недостающих значений с 0.

Далее я использую DF.to_csv('temp.csv', sep=',') написать DF как временный файл резюме, а затем использовать обработчик питон файл, чтобы открыть файл снова

 hd = open('temp.csv') 
    for line in hd: 
     line = line.split(',')..... 

к Парс e данные и ассоциировать больше информации из других таблиц данных. Это работает. Однако, если я сразу делаю

 hd = DF 

Затем он показывает сообщение об ошибке, как

 IndexError: list index out of range 

Есть ли какие-либо способы, чтобы пропустить сохранение в CVS и читать CSV-файл? i.e непосредственно открыть pandas dataFrame в качестве обработчика файлов?

Огромное спасибо!

+1

Почему вы хотите это сделать? Почему вы не можете «связывать больше информации из других таблиц» только с помощью самого объекта DataFrame? Что именно вы делаете с временным CSV-файлом? – BrenBarn

+0

Одна вещь: когда вы перебираете объект dataframe, вы просто перебираете имена колонок .. Они являются строками, поэтому, когда у вас есть метод '.' .split (',') '' ', вы разделяете имена столбцов Если у вас есть имя столбца '' 'col = 'something'''', тогда, когда вы его разделяете, вы получаете' '' 'somthing'.split ('. ')' '', Который просто [' something ' ]. Вероятно, вы пытаетесь проиндексировать этот массив, и это вызывает ошибку. Во всяком случае, с небольшим исследованием вы можете понять, что вы хотите делать в пандах, и если вы не можете узнать, что именно вы хотите, тогда С.О. slmost, конечно, есть ответ! – dermen

+0

@dermen: Он выполняет итерацию над файлом, а не с DataFrame. – BrenBarn

ответ

0

DF предположим, что это dataframe в панд, выполнив следующие действия:

for x in DF.values: 
    x = tuple(x) 

тогда x будет формат (x1, x2, x3...).