尝试将字典分配给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