use*_*454 1 python numpy matplotlib nonetype map-function
我刚刚加入了两个不等长的数组和命令:
allorders = map(None,todayorders, lastyearorders)
Run Code Online (Sandbox Code Playgroud)
其中"none"给出今天的订单没有值(因为今天的数组不是那么长).
但是,当我尝试将allorders数组传递到matplotlib条形图时:
p10= plt.bar(ind, allorders[9], width, color='#0000DD', bottom=allorders[8])
Run Code Online (Sandbox Code Playgroud)
..我收到以下错误:
TypeError: unsupported operand type(s) for +=: 'int' and 'NoneType'
Run Code Online (Sandbox Code Playgroud)
那么,matplotlib有没有办法接受无数据类型?如果没有,如何在我的allorders数组中用零替换'Nones'?
如果你可以,因为我是一个Python新手(来自R社区),请提供从头到尾的详细代码,我可以使用/测试.
使用numpy:
import numpy as np
allorders = np.array(allorders)
Run Code Online (Sandbox Code Playgroud)
由于 None,这会创建一个对象数组。我们可以用零替换它们:
allorders[allorders == None] = 0
Run Code Online (Sandbox Code Playgroud)
然后将数组转换为正确的类型:
allorders.astype(int)
Run Code Online (Sandbox Code Playgroud)
使用列表理解:
allorders = [i if i[0] is not None else (0, i[1]) for i in allorders]
Run Code Online (Sandbox Code Playgroud)