Как я могу правильно использовать numy 2d массивы в качестве элементов строк-столбцов панд?
Я попробовал несколько простых примеров, но когда я сохраняю и загружаю базу данных, формат массива изменяется, и я не могу получить доступ к индексам массива (но я могу получить доступ к элементу в целом).
Пример:
import pandas as pd
import numpy as np
df = pd.DataFrame(columns=['array','A','B'])
v = np.zeros((2,2))
df.loc[0,'array'] = v
df.loc[0,'A'] = 'some'
df.loc[0,'B'] = 'other'
df.to_csv('experiment.csv',index=False)
Вещи, которые я пытался прочитать массивом элементов 0
:
import pandas as pd
import numpy as np
df = pd.read_csv('experiment.csv')
new_v1 = df.loc[0,'array']
print(new_v1[0,1])
new_v2 = np.array(df.loc[0,'array'])
print(new_v2[0,1])
new_v3 = df.loc[0,'array'].item()
print(new_v3[0,1])
Но он показывает следующие ошибки:
IndexError: too many indices for array
AttributeError: 'str' object has no attribute 'item'
Как я могу использовать пустые массивы для каждого элемента? Возможно ли это?
SOLUTIONS
Как сказал ALollz , мне не нужно быть в удобочитаемом для человека формате, поэтому я использовал формат рассола. Это прямой способ сохранения, загрузки и использования аналогично переменной Python.
Другой вариант - использовать другой разделитель (решение mdk ). Но из того, что я понимаю, вы должны преобразовать массив в строку и обратно из строки, а также изменить форму массива, если это более одного измерения (с использованием reshape
).