X-Received: by 10.43.64.202 with SMTP id xj10mr2680661icb.0.1406696423209; Tue, 29 Jul 2014 22:00:23 -0700 (PDT) X-Received: by 10.50.221.39 with SMTP id qb7mr821993igc.0.1406696423122; Tue, 29 Jul 2014 22:00:23 -0700 (PDT) Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!enother.net!enother.net!news.glorb.com!h18no10260020igc.0!news-out.google.com!px9ni0igc.0!nntp.google.com!h18no10260015igc.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.python Date: Tue, 29 Jul 2014 22:00:22 -0700 (PDT) In-Reply-To: Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=79.183.177.9; posting-account=uo-8fwoAAACKsFzFX78JHudx1V7WDXZ0 NNTP-Posting-Host: 79.183.177.9 References: User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: Subject: Re: Load a CSV with different row lengths From: Miki Tebeka Injection-Date: Wed, 30 Jul 2014 05:00:23 +0000 Content-Type: text/plain; charset=ISO-8859-1 Xref: csiph.com comp.lang.python:75358 Greetings, > I should've mentioned that I want to import my csv as a data frame or numpy array or as a table. If you know the max length of a row, then you can do something like: def gen_rows(stream, max_length): for row in csv.reader(stream): yield row + ([None] * (max_length - len(line)) max_length = 10 with open('data.csv') as fo: df = pd.DataFrame.from_records(gen_rows(fo, max_length)) HTH, Miki