首页 > 解决方案 > 在 Pandas DataFrame 图中填充缺失值

问题描述

我有以下熊猫 DataFrame :

      Month      val  count
0     1           A      1
1     1           M      1
2     2           M      2
3     3           B      3
4     3           M      5
5     5           B      1

像这样通过 val 使用 pivot :

# Pivot by val
df.pivot(index='Month', columns='val',values='count').fillna(0).plot(marker='o', figsize=(14,5))

# Plot configuration
plt.title("Number of monthly searches for A, M and B")
plt.xlabel("Month")
plt.xticks(arange(12), calendar.month_abbr[1:13], rotation=45)
plt.show()

得到以下图: 在此处输入图像描述

问题是仅填充了数据框中月份范围的值。是否可以用 0 填充范围之外的其余值(月)?

标签: pythonpandas

解决方案


使用reindex-

df.pivot(index='Month', columns='val',values='count').reindex(range(1,13)).fillna(0)  

reindex将插入更多行,然后用 0fillna(0)填充所有na值。如果在此之后进行绘图,它将起到作用。

警告:所有颜色都不会清晰可见!

# Pivot by val
df.pivot(index='Month', columns='val',values='count').reindex(range(1,13)).fillna(0).plot(marker='o', figsize=(14,5))

# Plot configuration
plt.title("Number of monthly searches for A, M and B")
plt.xlabel("Month")
plt.xticks(arange(12), calendar.month_abbr[1:13], rotation=45)
plt.show()

在此处输入图像描述


推荐阅读