用pandas处理Dataframe数据,满足seaborn生成日历图的格式(python)

     本次数据处理的目的是根据管理需求生成日历图,把

     本次数据处理所用的包

import pandas as pd

首先初始数据长这样

原始数据1:

 为了生成日历图

我们需要把它变成这样

 为了将原始数据正确按照指定月份填入地址,代码如下:

def shengcheng_data(z):
    k=[]
    for i in range(31):
        kk=i+1
        k=k+[kk]
    ww=pd.DataFrame(index=z,columns=k)
    return ww

这一步是生成一个文本框

长这个样子

z=["3月","2月","1月"]
a=shengcheng_data(z)

然后试着把数据填入

代码长这样

辅助定位的初始数据处理代码

def fen_ge(a,k):
    w=[]
    for i in range(len(a[k])):
        w1=a[k][i].split("/")[2]
        if w1[0]=="0":
            w1=w1[1]
        else:
            pass
        w=w+[w1]
    return w

 还有这样

定位并填写信息代码

def tianru_riqi(a,k,b,w):#k=fen_ge(df,"日期"),b=df1["上班人数"] w=yuefen
    for i in range(len(k)):
        ss=int(k[i])
        a[ss][w]=list(b)[i]
    return a

 运行代码

z=["3月","2月","1月"]
a=shengcheng_data(z)
k=fen_ge(df3,"日期")
b=df3["上班人数"]
df=tianru_riqi(a,k,b,"3月")

填入数据后长这样

 生成日历图代码

# 导入用到的包
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import matplotlib as mpl
file = r"C:\\Users\\Administrator\\Desktop\\导入内容.xlsx"
df = pd.read_excel(file, sheet_name='Sheet1',index_col='Unnamed: 0')
df.head(10)

 日历图生成代码

mpl.rcParams['font.sans-serif'] = ['SimHei']   #设置简黑字体

mpl.rcParams['axes.unicode_minus'] = False

cm_light = mpl.colors.ListedColormap(['tab:green','yellow','orange','red'])
plt.figure(figsize=(22,6))
# mask标记过滤值
ax = sns.heatmap(df, square=True, annot=True, vmin=0, vmax=180, fmt='.0f', linewidths=.05
                , linecolor='gray', mask=df<30, cmap=cm_light)


plt.ylim(0, len(df)+.5)
plt.xlim(0, len(df.columns)+.5)
plt.savefig( 'exam.png')
plt.show()

 生成日历图显示如下:

猜你喜欢

转载自blog.csdn.net/weixin_48572116/article/details/126348755