python - 迭代和类型错误: 'int' object is not iterable

标签 python for-loop iteration typeerror keyerror

我正在制作一个堆积条形图,其中 x 轴是公司名称,y 轴是调用次数,堆栈是月份。总时间为一年。

我希望能够使用代码来调用月份图(其中堆栈为天)和周图(其中堆栈为天)。因此我试图使其更具可迭代性。

在我当年的工作代码中,我以这种方式获取条形图的月份:

Jan = pivot_table[1].astype(float).values
Feb = pivot_table[2].astype(float).values
Mar = pivot_table[3].astype(float).values
Apr = pivot_table[4].astype(float).values
May = pivot_table[5].astype(float).values
Jun = pivot_table[6].astype(float).values
Jul = pivot_table[7].astype(float).values
Aug = pivot_table[8].astype(float).values
Sep = pivot_table[9].astype(float).values
Oct = pivot_table[10].astype(float).values
Nov = pivot_table[11].astype(float).values
Dec = pivot_table[12].astype(float).values

然后我将月份写入 OrderedDict

months = OrderedDict([('Jan', Jan), ('Feb', Feb), ('Mar', Mar), ('Apr',Apr), ('May',May), ('Jun',Jun),('Jul',Jul), ('Aug',Aug), ('Sep',Sep),('Oct',Oct),('Nov',Nov),('Dec',Dec)])

显然这并不理想。因此,我写了一个循环。

months=[]
for month in range(1,12): 
    months[month] = pivot_table[month].astype(float).values

这给出了错误IndexError:列表分配索引超出范围 于是我查了一下错误,发现理想的方法是将值追加到列表中。我的下一步是尝试:

months=[]
for month in range(1,12): 
    months.append(pivot_table[month].astype(float).values)

并相应地更改OrderedDict:

months = OrderedDict([('Jan', 1), ('Feb', 2), ('Mar', 3), ('Apr',4), ('May',5), ('Jun',6),('Jul',7), ('Aug',8), ('Sep',9),('Oct',10),('Nov',11),('Dec',12)])

这给出了错误 TypeError: 'int' object is not iterable 这似乎是一个人们认为非常简单的错误,但即使在阅读了所有 stackflow 答案后我也无法弄清楚如何修复它。我尝试将pivot_table行括在[]和[[]]中,但这不起作用。我也尝试这样做:

months=[]
for month in str(range(1,12)): 
    months.append(pivot_table[month].astype(float).values)

但是得到了这个错误KeyError: '[',如果我打印月份,我会得到一个空列表,这让我认为它没有正确迭代。

最佳答案

str(range(1, 12)) == '[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]'

因此

for month in str(range(1, 12))

将迭代字符串而不是预期的数组。尝试一下

for month in range(1, 13):
    months.append(pivot_table[str(month)].astype(float).values)

(13 获取第 12 个索引)

关于python - 迭代和类型错误: 'int' object is not iterable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31321762/

相关文章:

python - AWS X-Ray 在服务 map 中显示重复节点

Python3.4 : for each line in text

java - BinarySearch 与 For 循环

python - pyqt5主窗口内弹出自定义对话框输入

python - 如何计算权重以最小化方差?

python - 定义一个函数来生成字典

JavaScript:理解 for 循环中的 let 范围

php - 如何在 for 循环中跟踪基数?

java - 如何在不迭代的情况下获取给定 LinkedHashSet 元素的索引?

javascript - Array.prototype.forEach() 在使用 get 处理程序的代理上调用时不起作用