2016-09-22 2 views
0

I eine CSV-Datei, die Zeilenumbrüche innerhalb von Spalten umfasst:Importieren CSV-Datei mit Zeilenumbrüchen in R oder Python Pandas

"id","comment","x" 
1,"ABC\"xyz",123 
2,"xyz\"abc",543 
3,"abc 
xyz",483 

ID 3, beispielsweise enthält eine solche Zeilenumbruch.

Wie kann dies in Python oder R importiert werden? Es macht mir auch nichts aus, wenn diese Zeilenumbrüche beispielsweise durch ein Leerzeichen ersetzt werden.

+1

werfen Sie einen Blick auf diese, http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html, können Sie Trennzeichen, Header und so ziemlich alles, was Sie brauchen, setzen. Es ist nur 'df = pd.read_csv (Pfad zur Datei)' –

+0

Zeilenumbrüche werden kein Problem sein, sie werden korrekt von R's 'read.csv' und Pandas '' read_csv' behandelt. In Ihrer Datei sind die doppelten Anführungszeichen jedoch nicht richtig maskiert (es sollte "" statt "" sein), und dieser Punkt könnte problematisch sein. – Scarabee

+0

In R hat 'read.csv' Probleme mit der Escape-Funktion, aber' readr :: read_csv' und 'data.table :: fread' Handle es gut ohne weitere Parameteranpassung – alistaire

Antwort

2

Python verfügt über einen integrierten CSV-Reader, der das für Sie erledigt. Siehe csv documentation.

import csv 

with open(filename) as f: 
    reader = csv.reader(f) 
    csv_rows = list(reader) 
2

das Problem schien nicht die Zeilenumbrüche zu sein, sondern die entkam oberen Zitate in den Spalten: \".

Python: zvones Antwort hat gut funktioniert!

import csv 

with open(filename) as f: 
    reader = csv.reader(f) 
    csv_rows = list(reader) 

R: readr::read_csv gearbeitet, ohne eine der Standardeinstellungen zu ändern.

0

Sie können auch Python Pandas Bibliothek read_csv Funktion verwenden. Stellen Sie sicher, dass Sie ein Escape-Zeichen angeben.

import pandas as pd 
df = pd.read_csv('path_to_csv', sep=',', escapechar='\\') 

Bitte beachten Sie, dass der zweite Backslash zuerst verschwindet. Es hat nichts mit Pandas oder CSV zu tun.

Verwandte Themen