Чтение CSV-файла со списком элементов в панде - PullRequest
0 голосов
/ 06 июля 2018

У меня есть файл CSV в следующем формате:

index      A      B      C
ind1    [1,2,3][3,4,5][6,7,8]
ind2    [1,4,3,4,8][9,1,2,1,4][3,7,3,5,9]
ind3    [2,8][1,8][1,5]

, где каждая ячейка (скажем, A, ind1) имеет список [1,2,3]. Когда я импортирую это в фрейм данных:

df=pd.read_csv('filename.csv')

Я получаю кадр данных в том же формате, что и CSV, однако список в отдельной ячейке импортируется в виде строки.

Скажем, я индексирую первый элемент столбца ind1 A df.iloc[0]['A'] дает мне '[' вместо 1

В основном он читает [1,2,3] как одну длинную строку, а не как список.

Как преобразовать значения во всех ячейках в список?

1 Ответ

0 голосов
/ 06 июля 2018

Интересный вопрос. Если вы будете использовать панд, я бы использовал literal_eval для кодирования сначала списка.

import pandas as pd from ast import literal_eval df = pd.read_csv("filename.csv")

Чем вы можете использовать pandas applymap для применения функции literal_eval к ​​каждой ячейке.

df[['A', 'B', 'C']] = df[['A', 'B', 'C']].applymap(literal_eval)

Теперь вы извлекли список и можете реагировать на них, как обычный список. например это даст вам из первого списка первый элемент:

df.iloc[0]['A'][0]

Я надеюсь, что это поможет вам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...