[Навыки разработки] · Как pandas сохраняет пустые элементы
1. Описание проблемы
Проблема, возникшая в процессе разработки, заключается в том, что numpy нужно сохранять как элемент pandas, а не как столбец элементов. Однако процесс практики не был гладким, и сообщалось об ошибках.Теперь я решил эту проблему и поделился своим опытом и пониманием, надеясь помочь будущим поколениям.
2. Практика развития
1. Создайте несколько фиктивных данных для сохранения
import pandas as pd
import numpy as np
l1 = [1,2,3,4]
l2 = [.1,.2,.3,.4]
lists = np.array([l1,l2])
labels = [1,0]
2. Создайте новый DataFrame для сохранения и отображения
df = pd.DataFrame()
df["list"] = lists
df["label"] = labels
print(df)
В это время программа сообщает об ошибке:
raise Exception('Data must be 1-dimensional')
Exception: Data must be 1-dimensional
Ошибка появляется вdf["список"] = списки,Причина ошибки в том, что списки не являются одномерными данными (Данные должны быть одномерными), почему возникает эта проблема?
Причина в том,lists = np.array([l1,l2]), списки становятся двумерными np.array формы (2, 4).
Как это решить? Нужно преобразовать np.array в список, он становится одномерным.
3. Исправьте код
import pandas as pd
import numpy as np
l1 = [1,2,3,4]
l2 = [.1,.2,.3,.4]
lists = np.array([l1,l2])
lists = list(lists)
labels = [1,0]
df = pd.DataFrame()
df["list"] = lists
df["label"] = labels
print(df)
Выходной результат:
list label
0 [1.0, 2.0, 3.0, 4.0] 1
1 [0.1, 0.2, 0.3, 0.4] 0
Некоторым друзьям может показаться, что код немного сложен.Зачем использовать np.array([l1,l2]) для преобразования в np.array, а затем использовать list(lists) для преобразования в список, на самом деле это имитирует реальный сценарии использования. Как правило, данные, с которыми мы соприкасаемся, - это np.array, а затем сохраняем их как pandas, они сообщают об ошибке (данные должны быть 1-мерными), решение состоит в том, чтобы преобразовать их в список.
В чем разница между numpy.array и списком? Я объясню это лучше в блоге позже.