Панды read_csv удалить пустые строки - PullRequest
0 голосов
/ 02 сентября 2018

Я читаю в файле CSV как DataFrame при определении типа данных каждого столбца. Этот код выдает ошибку, если файл CSV содержит пустую строку. Как мне прочитать CSV без пустых строк?

dtype = {'material_id': object, 'location_id' : object, 'time_period_id' : int, 'demand' : int, 'sales_branch' : object, 'demand_type' : object }

df = pd.read_csv('./demand.csv', dtype = dtype)

Я думал об одном способе сделать что-то подобное, но не уверен, что это эффективный способ:

df=pd.read_csv('demand.csv')
df=df.dropna()

, а затем переопределить типы данных столбца в df.

Редактировать: Код -

import pandas as pd
dtype1 = {'material_id': object, 'location_id' : object, 'time_period_id' : int, 'demand' : int, 'sales_branch' : object, 'demand_type' : object }
df = pd.read_csv('./demand.csv', dtype = dtype1)
df

Ошибка - ValueError: Integer column has NA values in column 2

Снимок моего CSV-файла - enter image description here

Ответы [ 3 ]

0 голосов
/ 02 сентября 2018

try.csv

s,v,h,h
1,2,3,4

4,5,6,7



9,10,1,2

Код Python

df = pd.read_csv('try.csv', delimiter=',')
print(df)

Выход

   s   v  h  h.1
0  1   2  3    4
1  4   5  6    7
2  9  10  1    2
0 голосов
/ 20 июля 2019

Это сработало для меня.

def delete_empty_rows(file_path, new_file_path):
    data = pd.read_csv(file_path, skip_blank_lines=True)
    data.dropna(how="all", inplace=True)
    data.to_csv(new_file_path, header=True)
0 голосов
/ 02 сентября 2018

попробуйте что-то вроде этого:

data = pd.read_table(filenames,skip_blank_lines=True, a_filter=True)
...