Posiadam zdefiniowaną w następujący sposób definicję Pandas DataFrame Pandas DataFrame . (Wiem, że to nie jest najlepszy sposób, aby to zrobić, ma to sens dla tego, co próbuję zrobić w moim prawdziwym kodzie, ale to byłby TMI dla tego postu, więc uwierz mi tylko, że to podejście działa w moim konkretnym scenariuszu .)Panda DataFrame zapisana lista jako ciąg: jak przekonwertować z powrotem na listę?
>>> df = DataFrame(columns=['col1'])
>>> df.append(Series([None]), ignore_index=True)
>>> df
Empty DataFrame
Columns: [col1]
Index: []
Zapisałem listy w komórkach tego DataFrame w następujący sposób.
>>> df['column1'][0] = [1.23, 2.34]
>>> df
col1
0 [1, 2]
Z jakiegoś powodu DataFrame zapisała tę listę jako ciąg zamiast listy.
>>> df['column1'][0]
'[1.23, 2.34]'
Mam 2 pytania do ciebie.
- Dlaczego DataFrame zapisuje listę jako ciąg znaków i czy istnieje sposób obejścia tego zachowania?
- Jeśli nie, to czy istnieje sposób Python do konwersji tego ciągu na listę?
Aktualizacja
DataFrame używałem były zapisywane i odczytywane z formatu CSV. Ten format, a nie sama DataFrame, przekonwertował listę z ciągu znaków na literał.
Czy możesz umieścić kod, który odtwarza to jako wsparcie dla ramek danych, przechowujące każdy obiekt arbritrary, więc powinno działać. – EdChum
@EdChum, jasne. –
Mam wersję pand w wersji '0.12.0', która nie konwertuje listy na ciąg. .. – namit