0
我試圖在「for」循環內使用「if」語句來檢查當前項目的索引是否在循環(包含該項目的熊貓系列的索引)對應於另一個系列的其中一個索引,但這樣做會產生ValueError。 這是代碼,給問題的行:ValueError:緩衝區有錯誤的維數(預期1,得到2),如果在語句中
if(ICM_items[ICM_items['track_id'] == i].index[0] in ICM_tgt_items.index.values.flatten().tolist()):
我試圖改變「在」隨機整數或列表聲明兩側和它的作品,也是這兩個項目都正確構建,但是當耦合他們的聲明提出了錯誤。
希望有人可以給我一些提示問題的位置或執行相同任務的替代方法。
ICM_items和ICM_tgt_items都是pandas.Series
下面有控制檯錯誤:
Traceback (most recent call last):
File "/Users/LucaButera/git/rschallenge/similarity_to_recommandable_builder.py", line 27, in <module>
dot[ICM_tgt_items[ICM_items[ICM_items['track_id'] == i].index[0]]] = 0
File "/Users/LucaButera/anaconda/lib/python3.6/site-packages/pandas/core/series.py", line 603, in __getitem__
result = self.index.get_value(self, key)
File "/Users/LucaButera/anaconda/lib/python3.6/site-packages/pandas/indexes/base.py", line 2169, in get_value
tz=getattr(series.dtype, 'tz', None))
File "pandas/index.pyx", line 98, in pandas.index.IndexEngine.get_value (pandas/index.c:3557)
File "pandas/index.pyx", line 106, in pandas.index.IndexEngine.get_value (pandas/index.c:3240)
File "pandas/index.pyx", line 147, in pandas.index.IndexEngine.get_loc (pandas/index.c:4194)
File "pandas/index.pyx", line 280, in pandas.index.IndexEngine._ensure_mapping_populated (pandas/index.c:6150)
File "pandas/src/hashtable_class_helper.pxi", line 446, in pandas.hashtable.Int64HashTable.map_locations (pandas/hashtable.c:9261)
ValueError: Buffer has wrong number of dimensions (expected 1, got 2)
[Finished in 1.26s]
您的問題的設置不是很清楚。如果您提供了有代表性的樣本數據,這將有所幫助請參見[如何創建最小,完整和可驗證示例](https://stackoverflow.com/help/mcve)。另外,你確定你只想看看匹配'track_id == i'的ICM_items的第一個索引嗎?如果返回多個索引會怎麼樣? –