我对python还不熟悉,我不知道为什么会出现这样的错误: ValueError:与Series不兼容的索引器。
我正试图在我的数据框架中添加一个日期。
我想补充的日期是:
date = (chec[(chec['Día_Sem']=='Thursday') & (chec['ID']==2011957)]['Entrada'])
date
日期输出:
56 1900-01-01 07:34:00
Name: Entrada, dtype: datetime64[ns]
然后,我尝试使用loc将“日期”添加到数据帧中:
rep.loc[2039838,'Thursday'] = date
rep
我得到了一个错误:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-347-3e0678b0fdbf> in <module>
----> 1 rep.loc[2039838,'Thursday'] = date
2 rep
~/anaconda3/lib/python3.7/site-packages/pandas/core/indexing.py in __setitem__(self, key, value)
188 key = com.apply_if_callable(key, self.obj)
189 indexer = self._get_setitem_indexer(key)
--> 190 self._setitem_with_indexer(indexer, value)
191
192 def _validate_key(self, key, axis):
~/anaconda3/lib/python3.7/site-packages/pandas/core/indexing.py in _setitem_with_indexer(self, indexer, value)
640 # setting for extensionarrays that store dicts. Need to decide
641 # if it's worth supporting that.
--> 642 value = self._align_series(indexer, Series(value))
643
644 elif isinstance(value, ABCDataFrame):
~/anaconda3/lib/python3.7/site-packages/pandas/core/indexing.py in _align_series(self, indexer, ser, multiindex_indexer)
781 return ser.reindex(ax)._values
782
--> 783 raise ValueError('Incompatible indexer with Series')
784
785 def _align_frame(self, indexer, df):
ValueError: Incompatible indexer with Series
发布于 2022-02-22 02:34:41
尝试date.iloc[0]
而不是date
rep.loc[2039838,'Thursday'] = date.iloc[0]
因为date
实际上是一个值的序列(基本上类似于一个列表/数组),而.iloc[0]
实际上选择了这个值。
发布于 2022-02-22 03:33:55
您可以使用loc获取一个特定的值,而您的日期类型是一个序列或数据类型,两者之间的类型不能匹配,您可以更改代码将日期的值赋给rep.loc2039838,例如,如果您的日期类型是一个序列而不是null,您可以这样做:
rep.loc[2039838,'Thursday'] = date.values[0]
发布于 2022-05-10 09:16:04
我也面临着类似的问题,但情况不同。我遇到了重复索引的线程,但当然不是这样的。对我来说起作用的是用.at
代替.loc
。所以你可以试着看看它是否有效
代表‘周四’电话:2039838= date.values
https://stackoverflow.com/questions/71215246
复制相似问题