2017-06-21 4 views
1

Ich speichere set Parameter mit to_csv.Unterstützt Pandas lesen `set` Parameter mit read_csv

csv Datei wie folgt.

1,59 "set ([17122, 196, 26405, 13032, 39657, 12427, 25133, 35951, 38928 , 2 6088, 10258, 49235, 10326, 13176, 30450, 41787, 14084, 46149])“, 18,19.0,1 1,5.36363649368

Kann ich read_csv und geben einen set Typ, aber str

users = pd.read_csv(DATA_PATH + "users_match.csv", dtype={ 
}) 

enter image description here

Antwort

1

Die Antwort ist ja. Ihre Lösung

users = pd.read_csv(DATA_PATH + "users_match.csv", header = None) 

bereits zurückkehren Spalte 2 als String solange Sie doppelte Anführungszeichen um set([...]) haben. Dann

users[2].apply(lambda x: eval(x)) 

verwenden, um es zu set zu konvertieren zurück

+0

Dann sollte ich 'df [ 'xx'] verwenden anzuwenden. (lambda x: eval (x))' zu konvertieren – Sam

+0

das ist richtig – VinceP

1

Um den str Objektdatenrahmen zu konvertieren (die Zeichenfolge mit den Zeichen „gesetzt“ ab) in ein integrierten Python set Objekt, hier ist ein Weg, :

>>> import pandas as pd 
>>> df = pd.read_csv('users_match.csv', header=None) 
>>> type(df[2][0]) 
str 
>>> df.set_value(0, 2, eval(df[2][0])) 
>>> type(df[2][0]) 
set 
Verwandte Themen