python学习笔记之一些测试代码(四)

本文详细介绍Python中字典操作、JSON数据转换、Pandas数据处理及Matplotlib绘图技巧,涵盖数据转换、数据筛选、时间序列分析及图表制作等核心内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# 测试代码1--json库的使用
# 新建一个字典
dic_v1 = {"confirm":500,"heal":480}   #创建字典
print(dic_v1)
print(type(dic_v1))

# 将字典dic_v1转换为字符串
print("将字典dic_v1转换为字符串".center(30,'='))
import  json
str_v1 = json.dumps(dic_v1)    #将字典转换为字符串
print("字典转换为字符串后的值:",str_v1)
print("使用dumps转换字典为字符串类型:",type(str_v1))

#将字符串转换为字典
print("#将字符串转换为字典".center(30,'='))
dic_v2 = json.loads(str_v1)
print("字符串转换为字典后的值:",dic_v2)
print("使用loads转换字符串为字典类型:",type(dic_v2))




#测试代码2--python中字典容器对象的使用
dic_v3 = {"确诊":1000,"治愈":800,"死亡":200}    #创建字典

#遍历字典中的所有键
for dic_key in dic_v3.keys():
    print(dic_key)

##遍历字典中的所有值
for dic_value in dic_v3.values():
    print(dic_value)

##遍历字典中的所有键值对
for dic_item in dic_v3.items():
    print(dic_item)
    
#访问字典中的某个元素
print("访问字典中的某个元素",dic_v3['治愈'])     #用键获取元素值
print(dic_v3.get("治愈","没有您的访问内容"))     #用get方法获取元素值




#测试代码3—pandas中,保存数据到本地
dic_v4 = {"学生1":{"姓名":"沃登","年龄":21,"性别":"男"},
          "学生2":{"姓名":"沃尔登","年龄":22,"性别":"男"}}

dic_v5 = [{"姓名":"沃登","年龄":21,"性别":"男"},
          {"姓名":"沃尔登","年龄":22,"性别":"男"}]
import pandas as pd
stu_df = pd.DataFrame(dic_v4)     #利用DataFrame数据框,将字典转化为dataframe格式的数据
stu_df.to_csv("student.csv")     #将dataframe格式的数据保存到本地csv格式的文件
                                 #,encoding = "gbk"或者"utf-8"

pd.DataFrame(dic_v4)
 # pd.DataFrame(dic_v5)




#测试代码4—将英文标题换成汉字
dic_v6 = {'confirm': 61,'heal': 195,'dead': 4}
dic_v7 = {'confirm': "确诊",'heal': "治愈",'dead':"死亡"}

dic_v8 = {}

for dic_v6_key in dic_v6.keys():
    dic_v8[dic_v7[dic_v6_key]] = dic_v6[dic_v6_key]
    
dic_v8




#测试代码5—格式化输出
name = '沃尔德'
age = 20
tel = '12345678910'

print('我叫%s,年龄%d,电话是%s'%(name,age,tel))
print('我叫{},年龄{},电话是{}'.format(name,age,tel))
print('我叫{0},年龄{1},电话是{2}'.format(name,age,tel))




#测试代码6-查找数据
import pandas as pd
file_name1 = open('美国_country_real_data.csv',encoding = 'utf-8') #用open命令按照utf-8格式打开
file_v1 = pd.read_csv(file_name1)     #然后用pandas的命令读文件
file_v2 = file_v1.drop('Unnamed: 0',axis=1)    #删除列,

#方法1:用列名查找
file_v2[['名称','总计确诊']]

file_v2.loc[:,['名称','总计确诊','总计治愈']]

#查找总计治愈大于10000的省份信息
file_v2.loc[file_v2['总计治愈']>50000,['名称','总计确诊','总计治愈']]




#测试代码7-处理与时间相关的数据
import pandas as pd
file_name1 = open('china_hist_data.csv',encoding = 'utf-8') #用open命令按照utf-8格式打开
file_v1 = pd.read_csv(file_name1)     #然后用pandas的命令读文件
file_v2 = file_v1.drop('Unnamed: 0',axis=1)    #删除列,

file_v2['时间']=pd.to_datetime(file_v2['时间']) #将字符格式的时间数据,转换为日期格式
file_v2.dtypes
file_v4 = file_v2.iloc[:,[1,2,3,11,12,9,15]]  #iloc与loc不同,iloc只能是数字,不能是列名等文本
file_v5 = file_v4.set_index('时间')     #把时间作为索引
file_v5

file_v5.index = file_v5.index.month

#分组聚合
file_v5.loc[:,['当天疑似','当天确诊']].groupby(file_v5.index).sum()   #每月总计

#统计每天的当天确诊人数中的最大值,最小值,和值
file_v6 = file_v4.set_index('时间')    #把时间作为索引
file_v6.index = file_v6.index.day     #提取时间中的日作为索引
file_v6

#分组聚合
file_v6.loc[:,['当天疑似','当天确诊']].groupby(file_v6.index).agg(['sum','max','min'])




#测试代码8—绘制折线图
import matplotlib.pyplot as plt     #导入可视化库

plt.rcParams['font.sans-serif'] = 'SimHei'   #设置字体
plt.rcParams['axes.unicode_minus'] = False  #字符显示,更多详见优快云


x = ['治愈','死亡','确诊']
y = [100,150,300]
y1 = [500,200,800]


fig = plt.figure(figsize=(8,6),dpi=80) #绘制画布,figsize宽和高,dpi分辨率,默认80

plt.title('疫情数据')
plt.xlabel('类型')  #设置横坐标变量
plt.ylabel('人数')  #设置纵坐标变量
plt.ylim(0,1000)  #表示x,y轴的取值范围,括号内为元组
plt.yticks(range(100,1000,100)) #表示x,y轴的刻度,括号内为序列
plt.legend(['2月12日','2月13日'])


plt.plot(x,y,'r--',
         x,y1,'b:') #绘制折线图  或者分两个也行 plt.plot(x,y1,color=‘blue’,linestyle = '--'等) #绘制折线图

 # plt.scatter(x,y,marker = '^') #绘制散点图
    
#将数据点绘制到折线上
for i in range(len(x)):
    plt.annotate(xy = (i,y[i]+5),s=y[i])   #s:注释文本的内容     xy:被注释的坐标点,二维元组形如(x,y)
    plt.annotate(xy = (i,y1[i]+5),s=y1[i])

plt.show()   #显示图形




#测试代码9
import pandas as pd
city_code = {'Beijing':'010','Tianjian':'022','Guangzhou':'020','Dalian':'0411','Shanghai':'021','Changchun':'0431'}
city_se = pd.Series(city_code)
city_se
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值