Я вижу, что другие пользователи StackOverflow задавали подобные вопросы, но я задаю отдельный вопрос. В настоящее время я использую Pandas 0.23.3.
Я знаю, как встроить Python объект в одну ячейку в Pandas DataFrame. Если вы поместите элемент в список и назначите его в ячейку, Pandas не будет пытаться выделить его элементы и передать их. Я делаю это, и это работает. Что мне не нравится, так это то, как Pandas печатает такие DataFrames. Если вы помещаете списки или DataFrames в отдельные элементы большего DataFrame, результат печати получается грязным и трудным для чтения.
Я не нашел стандартного подхода Pandas для решения этой проблемы печати в документации поэтому я построил подкласс DataFrame для более красивой печати. Единственный метод в подклассе - __str__
. Он ищет dtypes «объекта», и когда объекты обнаруживаются, я печатаю указанный тип c вместо попытки распечатать содержимое. Пример вывода из сеанса интерпретатора i Python:
In [3]: exp
Out[3]:
embed_dim kernel_size min_loss best_epoch elapsed_time history embedding best_weights
0 1 3 -0.717174 32 361.163418 <PrettyDataFrame> <DataFrame> <Series>
1 1 3 -0.717349 34 424.519406 <PrettyDataFrame> <DataFrame> <Series>
2 1 3 -0.717181 25 287.420010 <PrettyDataFrame> <DataFrame> <Series>
3 1 3 -0.717192 31 327.283332 <PrettyDataFrame> <DataFrame> <Series>
In [4]: exp.loc[2].history
Out[4]:
initial_epoch final_epoch min_loss best_epoch best_weights loss
0 0 19 -0.717125 19 <list> <ndarray>
1 20 28 -0.717181 25 <list> <ndarray>
Родительским объектом exp является PrettyDataFrame. Столбец истории в exp имеет больше PrettyDataFrames, вложенных в родительский элемент, и я тоже распечатаю один из них.
Я думаю, что это может быть хорошей функцией в Pandas, если она еще не существует. Согласно странице Pandas GitHub, я должен задавать вопросы здесь, прежде чем отправлять запрос функции.
Спасибо за ваши советы и комментарии!