如何在Pandas时间轴散点图中将NaN值显示为间隔
问题描述
用Pandas DataFrame生成了6个子图控制图,当前按索引绘制,需改为基于时间戳绘制。原始XML数据中的空白值以“-”表示,已通过df[y[0]].replace({'-': np.nan}, inplace=True)转为numpy NaN。因需进行含移动极差计算的统计分析以生成控制限,不能用0替代NaN。按索引绘制结果正常,但改为以非规则时间戳列TIMESTAMP为x轴时,出现x and y must be the same size错误,报错代码行是df.plot.scatter(y = y[0], ax=axes[0], x = 'TIMESTAMP')。此外,各子图的NaN出现时间点不同,需保留完整时间轴,仅将NaN显示为间隔,不能删除整行(同一时间点通常仅单个NaN,其余5个值有效)。
示例数据
构造DataFrame代码
data = {'TIMESTAMP': ['01/07/2023 08:04:11', '01/07/2023 08:04:37', '01/07/2023 08:04:53', '01/07/2023 08:05:06', '01/07/2023 08:05:18', '01/07/2023 08:05:29', '01/07/2023 08:05:40', '01/07/2023 08:05:50', '01/07/2023 08:06:01', '01/07/2023 08:06:12', '01/07/2023 08:06:22', '01/07/2023 08:06:33', '01/07/2023 08:06:43'], 'y1': ['107.08', '107.54', '107.18', '-', '106.92', '107.16', '107.46', '107.68', '107.84', '107.88', '108.1', '108.06', '108.2'], 'y2': [107.12, 107.0, 107.92, 107.78, 106.96, 107.36, 107.58, 107.66, 107.92, 107.8, 107.94, 108.2, 108.12], 'y3': ['107.66', '107.16', '106.92', '108.14', '106.96', '-', '107.54', '107.58', '107.72', '107.82', '107.96', '108.04', '108.12'], 'y4': ['107.48', '107.6', '107.82', '107.78', '107.02', '-', '107.46', '107.48', '107.76', '107.82', '107.88', '108.02', '108.08'], 'y5': ['107.38', '107.6', '107.6', '107.72', '107.48', '107.82', '107.9', '108.12', '108.22', '-', '108.7', '107.98', '107.94'], 'y6': [107.44, 107.62, 107.48, 107.56, 107.46, 107.72, 107.82, 108.08, 108.06, 108.2, 108.18, 108.36, 108.46]} df = pd.DataFrame(data)
DataFrame展示
TIMESTAMP y1 y2 y3 y4 y5 y6 0 01/07/2023 08:04:11 107.08 107.12 107.66 107.48 107.38 107.44 1 01/07/2023 08:04:37 107.54 107.00 107.16 107.6 107.6 107.62 2 01/07/2023 08:04:53 107.18 107.92 106.92 107.82 107.6 107.48 3 01/07/2023 08:05:06 - 107.78 108.14 107.78 107.72 107.56 4 01/07/2023 08:05:18 106.92 106.96 106.96 107.02 107.48 107.46 5 01/07/2023 08:05:29 107.16 107.36 - - 107.82 107.72 6 01/07/2023 08:05:40 107.46 107.58 107.54 107.46 107.9 107.82 7 01/07/2023 08:05:50 107.68 107.66 107.58 107.48 108.12 108.08 8 01/07/2023 08:06:01 107.84 107.92 107.72 107.76 108.22 108.06 9 01/07/2023 08:06:12 107.88 107.80 107.82 107.82 - 108.20 10 01/07/2023 08:06:22 108.1 107.94 107.96 107.88 108.7 108.18 11 01/07/2023 08:06:33 108.06 108.20 108.04 108.02 107.98 108.36 12 01/07/2023 08:06:43 108.2 108.12 108.12 108.08 107.94 108.46
内容的提问来源于stack exchange,提问作者ChemEnger
相关产品推荐
相关产品推荐

