Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Как распарсить CSV с массивами в ячейках?

Есть CSV вида: data1, data2. [[12 34][45 78]], [112 123 126 160] pd.read_csv() вычитывает массивы, как строки. Astype () не прокатывает. dtype=np.array — тоже. Если пробежаться по каждому элементу вручную, то, конечно, можно преобразовать строки в массивы с помощью np.fromstring (), но так делать не хочется. Есть же какой-то простой способ?

ПрограммированиеПарсинг
Татьяна -
  ·   · 2,6 K
Лучший
Исправляю старые баги, добавляю новые  · 19 февр 2021

Pandas не хранит тип данных list/array, поэтому у вас не получается преобразовать.

Как распарсить?

Основной способ — метод explode. Он создаст строку для каждого элемента.

>>> import pandas as pd
>>> df = pd.DataFrame({'data1': [[[12, 34],[45, 78]],], 'data2': [[112, 123, 126, 160],]})
>>> df
                  data1                 data2
0  [[12, 34], [45, 78]]  [112, 123, 126, 160]
>>> df.explode('data1')
      data1                 data2
0  [12, 34]  [112, 123, 126, 160]
0  [45, 78]  [112, 123, 126, 160]
>>> df.explode('data2')
                  data1 data2
0  [[12, 34], [45, 78]]   112
0  [[12, 34], [45, 78]]   123
0  [[12, 34], [45, 78]]   126
0  [[12, 34], [45, 78]]   160

А вот способ добавить новые колонки:

>>> df[['a','b']] = df.data1.tolist()
>>> df
                  data1                 data2         a         b
0  [[12, 34], [45, 78]]  [112, 123, 126, 160]  [12, 34]  [45, 78]
Спасибо, правда это не совсем то, что мне нужно) Мне нужно было сохранить структуру именно в том виде, в котором... Читать дальше