Нужно назначить dic для Pandas Dataframe - PullRequest
0 голосов
/ 04 июля 2018

У меня проблемы при попытке назначить dict для df DataFrame,

df.loc[index,'count'] = dict()

как я получаю это сообщение об ошибке:

Incompatible indexer with Series

Чтобы обойти эту проблему, я могу сделать это,

df.loc[index,'count'] = [dict()]

, но мне не нравится это решение, так как я должен разрешить список, прежде чем получить словарь, т.е.

a = (df.loc[index,'count'])[0]

Как мне решить эту ситуацию более элегантно?

EDIT1

Один из способов воспроизвести весь код следующий:

Код:

import pandas as pd
df = pd.DataFrame(columns= ['count', 'aaa'])
d = dict()
df.loc[0, 'count'] = [d]; print('OK!'); 
df.loc[0, 'count'] = d

Выход:

OK!
Traceback (most recent call last):

  File "<ipython-input-193-67bbd89f2c69>", line 4, in <module>
    df.loc[0, 'count'] = d

  File "/usr/lib64/python3.6/site-packages/pandas/core/indexing.py", line 194, in __setitem__
    self._setitem_with_indexer(indexer, value)

  File "/usr/lib64/python3.6/site-packages/pandas/core/indexing.py", line 625, in _setitem_with_indexer
    value = self._align_series(indexer, Series(value))

  File "/usr/lib64/python3.6/site-packages/pandas/core/indexing.py", line 765, in _align_series
    raise ValueError('Incompatible indexer with Series')

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