Pandas重新索引仅适用于唯一值索引对象。

4
安装了最新版本的pandas 0.9.0,以防这是一个错误。编辑:忘记提到这是Python 2.7。 正在尝试读取Excel文件。这部分看起来没问题。 最初,我尝试对pandas数据帧的每一行使用iteritems(),因为id_company需要与mysql数据库进行验证(未包含代码)。与将其放入元组(代码如下)相同/相似的错误消息。以下是错误消息。 请注意,有.reindex()但之前它并不起作用。reindex()有点像绝笔。 为了解决问题,我可能会直接从目标SQL中导入并进行连接。我担心数据集的大小。
 import pandas as pd
def runNow():
    #identify sheet
    source = 'C:\Users\jlalonde\Desktop\startup_geno\startupgenome_w_id_xl_20121109.xlsx'
    xls_file = pd.ExcelFile(source)
    sd = xls_file.parse('Sheet1')
    source_u = sd.drop_duplicates(cols = 'id_company', take_last=False)
    source_r = source_u[['id_company','id_good','description', 'website','keyword', 'company_name','founded_month', 'founded_year', 'description']]
    source_i = source_r.reindex() #hail mary
    tup_r = [tuple(x) for x in source_i.values]

这是错误信息:

Traceback (most recent call last):
  File "<pyshell#10>", line 1, in <module>
    sg_sql_2.runNow()
  File "sg_sql_2.py", line 31, in runNow
    tup_r = [tuple(x) for x in source_r.values]
  File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 1443, in as_matrix
    return self._data.as_matrix(columns).T
  File "C:\Python27\lib\site-packages\pandas\core\internals.py", line 723, in as_matrix
    mat = self._interleave(self.items)
  File "C:\Python27\lib\site-packages\pandas\core\internals.py", line 743, in _interleave
    indexer = items.get_indexer(block.items)
  File "C:\Python27\lib\site-packages\pandas\core\index.py", line 748, in get_indexer
    raise Exception('Reindexing only valid with uniquely valued Index '
Exception: Reindexing only valid with uniquely valued Index objects

在这个问题上我已经琢磨了大部分时间,但是我还是想问一下,这是一个bug还是有什么非常明显的东西我没有发现?


可能是重复问题:http://stackoverflow.com/questions/13292944/resample-non-unique-time-indexes-in-python。您有一个可以用来重现错误的示例吗? - Garrett
我可以毫不费力地发布Excel文件。不,这不是重复的,因为我有一个唯一的索引,而另一个链接的索引是重复的...尽管解决方案可能是相同的... - joseph_pindi
这个错误的 GitHub 问题跟踪链接为:https://github.com/pydata/pandas/issues/2236 - Garrett
是的,无论哪个先回答都会得到我的永恒感激!我会在两个论坛上发布解决方案,以确保没有任何未解答的问题。我这样做是因为我需要快速解决问题,不能发帖等待一周却得不到答案,然后再尝试另一个论坛并等待另一个星期才能解决。我的工作期限不允许这种延迟。所以对于这种“地毯式轰炸”,请谅解,但最终结果将是干净的,我保证。 - joseph_pindi
1个回答

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接