首页 > 解决方案 > TypeError:输入必须是元组的列表/序列

问题描述

所以现在我认为这是正确的顺序

所以从上一个问题How to modify pandas Dataframe and how to Interact with plot dash gui frameworkout html core components

我注意到 usingset_value是更新/修改中特定单元格的最佳方法dataframe,因此我尝试使用此代码

values.index = pd.MultiIndex.from_tuples(values.index)

ext_sites.set_value(values.index, 'Pending  ', 'aaaaaaaaaaaaaaaaaa')

顺便说一句,我曾经将tuple值转换为MultiIndex

但我发现这个错误

Traceback (most recent call last):
  File "C:/Users/DELL/PycharmProjects/Gov-Trac-Tool/updateMyDF.py", line 34, in <module>
    values.index = pd.MultiIndex.from_tuples(values.index)
  File "C:\Users\DELL\PycharmProjects\MyALLRefProf\venv\lib\site-packages\pandas\core\indexes\multi.py", line 383, in from_tuples
    raise TypeError('Input must be a list / sequence of tuple-likes.')
TypeError: Input must be a list / sequence of tuple-likes.

当我像这样指定行索引时它是如何工作的

ext_sites.set_value(800, 'Pending ', 'aaaaaaaaaaaaaaaaaa')

那我走对了吗?

标签: pythonpandastuples

解决方案


您的代码执行未达到ext_sites.set_value(...)。您的代码中的错误发生在前一行:

values.index = pd.MultiIndex.from_tuples(values.index)

什么清楚地写在你的 Traceback 中。

查看pandas.MultiIndex.from_tuples的文档。它包含:

tuples : list / sequence of tuple-likes

显然values.index不是任何类似元组的列表/序列,所以Pandas抱怨这一点。也许你有一个“正常”的索引(不是 MultiIndex)?

顺便说一句:你的变量有 name values。选择与方法名重叠的变量名是一个坏习惯(列名也是如此)。使用其他名称。

另一个坏习惯:列名不应包含尾随空格,就像'Pending '在您的代码中一样。它们也不应该包含初始空格。


推荐阅读