Python基础知识
书院二层楼
这个作者很懒,什么都没留下…
展开
-
pandas的数据拼接与合并(concat、join、merge)
代码示例:import pandas as pd import numpy as npfrom pandas import Series,DataFrame#数据的拼接:concat'''axis=0 , join='inner' : 行上面进行伸缩,列的上面取交集axis=0 , join='outer' : 行上面进行伸缩,列的上面取并集 等价于 df1.append(df2)axis=1 , join='inner' : 列上面进行伸缩,行的上面取交集axis=1 , jo原创 2021-01-23 15:41:04 · 438 阅读 · 3 评论 -
pandas-DataFrame增加行和列数据、删除行和列数据(append、drop)
代码示例:import pandas as pd from pandas import Seriesdf = pd.DataFrame([['小明','F',22],['小红','M',32],['Tom','F',18],['Lily','M',14]], columns=['name','gender','age'])#增加数据#增加一列数据df['StuNo'] = ['20210001','20210002','20210003','202原创 2021-01-23 11:27:10 · 1228 阅读 · 4 评论 -
pandas提取某段时间范围数据的五种方法,比如提取9月份数据
代码示例:import pandas as pd#读取文件df = pd.read_csv('./TianQi.csv')#获取九月份数据的几种方法#方法一 使用行索引切片,['2019/9/1':'2019/9/30'],缺点是要求日期必须是连续的。为了方便查看取前5条,以下其他方法均取前5条,由于未进行排序,顺序会有差异df.set_index('日期',inplace=True)print(df['2019/9/1':'2019/9/30'].head()) #或者pr原创 2021-01-23 10:00:20 · 20774 阅读 · 2 评论 -
pandas数据的高级逻辑查询操作query
代码示例:import pandas as pd#读取文件df = pd.read_csv('./TianQi.csv')#字符串替换和类型转换df['最高温度'] = df['最高温度'].str.replace('℃','').astype('int32')df.loc[:,'最低温度'] = df['最低温度'].str.replace('℃','').astype('int32')#编写取值条件字符串。qstr = "(25<最高温度<30)"#获取最高温度范原创 2021-01-22 11:32:48 · 612 阅读 · 0 评论 -
pandas数据的逻辑查询操作
代码示例:import pandas as pd#读取文件df = pd.read_csv('./TianQi.csv')#字符串替换和类型转换df['最高温度'] = df['最高温度'].str.replace('℃','').astype('int32')df.loc[:,'最低温度'] = df['最低温度'].str.replace('℃','').astype('int32')#获取最高温度大于32的条目,为了方便查看只显示5条print(df[df['最高温度']>原创 2021-01-22 11:04:19 · 244 阅读 · 3 评论 -
pandas按照多列排序-ascending
代码示例:import pandas as pd#读取文件df = pd.read_csv('./TianQi.csv')#字符串替换和类型转换df['最高温度'] = df['最高温度'].str.replace('℃','').astype('int32')df.loc[:,'最低温度'] = df['最低温度'].str.replace('℃','').astype('int32')#排序并获取最高温度前5名print(df.sort_values(by='最高温度',ascen原创 2021-01-22 10:43:46 · 6618 阅读 · 2 评论 -
小练习:pandas获取天气最高温度前5名
代码示例:import pandas as pddf = pd.read_csv('TianQi.csv')df['最高温度'] = df['最高温度'].str.replace('℃','').astype('int32')df['最低温度'] = df['最低温度'].str.replace('℃','').astype('int32')df1 = df.sort_values(by='最高温度',ascending=False,inplace=False).head(5)'''#原创 2021-01-13 18:05:23 · 653 阅读 · 1 评论 -
pandas-DataFrame修改行索引-index和列索引-columns
代码示例:import pandas as pdimport numpy as npdf = pd.DataFrame(np.arange(9).reshape(3, 3), index = ['TJ', 'BJ', 'SH'], columns=['q', 'w', 'e'])print(df)'''打印: q w etj 0 1 2bj 3 4 5sh 6 7 8'''df.index = ['TianJin', 'BeiJin', 'Shang原创 2021-01-13 17:20:04 · 22315 阅读 · 2 评论 -
pandas-DataFrame通过标签索引loc和位置索引 iloc获取数据
代码示例:import pandas as pddf = pd.read_csv('test.csv')print(df)'''打印: userId score age0 1 45 181 2 65 192 3 58 173 4 92 164 5 78 18''''''df.loc[] 通过标签索引获取数据df.iloc[] 通过位置索引获取原创 2021-01-13 15:25:06 · 2489 阅读 · 0 评论 -
pamdas-DataFrame使用索引或切片获取行和列
代码示例:import pandas as pddf = pd.read_csv('test.csv')print(df)'''打印: userId score age0 1 45 181 2 65 192 3 58 173 4 92 164 5 78 18'''#获取列print(type(df.score)) #打印:<clas原创 2021-01-13 14:23:34 · 438 阅读 · 1 评论 -
pandas DataFrame的属性和信息概览
代码示例:import pandas as pddf1 = pd.read_csv('test.csv')print(df1)'''打印: userId score age0 1 45 181 2 65 192 3 58 173 4 92 164 5 78 18'''print(df1.shape) #获取行和列,打印(5, 3)print(原创 2021-01-13 11:07:32 · 333 阅读 · 0 评论 -
pandas多个Series运算和单个Series运算
代码示例:import pandas as pdimport numpy as np#多个Series计算,相同索引的元素进行计算,只有一个索引的元素结果均为NaN。注意计算后元素类型会发生变化series1 = pd.Series([5,6,7,8],['A','B','D','E'])print(series1)'''打印:A 5B 6D 7E 8dtype: int64'''series2 = pd.Series([2,3,4,4],['A',原创 2021-01-08 11:50:44 · 1659 阅读 · 0 评论 -
pandas读取csv,并进行Series取值操作
代码示例:#读取CSVimport pandas as pddf1 = pd.read_csv('test.csv')print(df1)'''打印: userId score age0 1 45 181 2 65 192 3 58 173 4 92 164 5 78 18'''#获取一列,即Series数据获取series1 = df1['s原创 2021-01-08 11:35:24 · 2836 阅读 · 1 评论 -
pandas-认识Series:使用列表/字典创建、DataFrame的行和列
代码示例:from pandas import DataFrame,Seriescity={ 'Province': ['TianJin', 'Beijing', 'ShangHai', 'ChongQing','ShenZhen'], 'pop': [1.3, 2.5, 1.9, 0.7,2.1], 'year': [2019, 2019, 2019, 2019, 2019]}df1 = DataFrame(city)#DataFrime的一行或者一列都是Series原创 2021-01-07 21:43:39 · 1396 阅读 · 0 评论 -
pandas使用数组和字典创建DataFrame &DataFrame转化为字典
代码示例:import pandas as pdfrom pandas import DataFrame,Seriesimport numpy as np#使用数组创建dataframe,默认行索引、默认列索引df1 = DataFrame(np.random.randint(0,10,(3,3)))print(df1)'''打印: 0 1 2 0 8 9 71 8 4 82 1 5 3'''#index执行行索引、columns指定列索引df2原创 2021-01-07 21:26:41 · 2234 阅读 · 1 评论 -
numpy数组转置(my_array.T)
代码示例:my_array = np.arange(15).reshape(3,5)print ('原数组:')print (my_array)print ('\n') print ('转置数组:')print (my_array.T)'''原数组:[[ 0 1 2 3 4] [ 5 6 7 8 9] [10 11 12 13 14]]转置数组:[[ 0 5 10] [ 1 6 11] [ 2 7 12] [ 3 8 13] [ 4 9原创 2021-01-06 11:52:42 · 1561 阅读 · 0 评论 -
numpy获取数组最大值和某一轴上的最大值
代码示例:import numpy as npscore = np.array([[61,65],[62,60],[57,61]])print(score)# 1. 获取所有数据最大值result = np.max(score)print(result) #打印65# 2. 获取某一个轴上的数据最大值result = np.max(score,axis=0)print(result) #打印[62 65]...原创 2021-01-06 11:46:56 · 2883 阅读 · 0 评论 -
numpy如数组中的nan,并将nan替换为平均值
示例代码:# 如何处理数组中的nan,策略是将nan替换为平均值 import numpy as npt = np.arange(24).reshape(3,8).astype('float') t[1,3:] = np.nan #将第二行三列之后的元素替换为nanprint(t)# 遍历每一列,然后判断每一列是否有nanfor i in range(t.shape[1]): #获取当前列数据 temp_col = t[:,i] # 判断当前列的数据中是否原创 2021-01-02 21:26:24 · 1830 阅读 · 0 评论 -
numpy中nan的特性、操作和统计
代码示例:import numpy as np# 创建一个nana = np.nanprint(a,type(a)) #打印:nan <class 'float'> *****print(np.isnan(a)) #打印:Trueprint("-"*40)# 注意:float类型的数据才能赋值nanb = np.arange(24,dtype=float).reshape(4,6)print(b)'''打印:[[ 0. 1. 2. 3. 4.原创 2021-01-01 23:07:24 · 507 阅读 · 0 评论 -
numpy数组与数运算&&数组与数组运算
代码示例:import numpy as np#数组与数的运算my_np1 = np.arange(18).reshape(3,6)print(my_np1)'''打印:[[ 0 1 2 3 4 5] [ 6 7 8 9 10 11] [12 13 14 15 16 17]]'''print(my_np1+2)'''打印:[[ 2 3 4 5 6 7] [ 8 9 10 11 12 13] [14 15 16 17 18 19]]'''p原创 2021-01-01 22:47:50 · 1170 阅读 · 0 评论 -
numpy二维轴和三维轴(axis)
代码示例:import numpy as np#二维数组my_np1 = np.arange(18).reshape(3,6)print(my_np1)'''打印:[[ 0 1 2 3 4 5] [ 6 7 8 9 10 11] [12 13 14 15 16 17]]'''print(np.sum(my_np1)) #打印153,所有元素的和print(np.sum(my_np1,axis=0)) #打印[18 21 24 27 30 33],即每原创 2021-01-01 22:28:30 · 979 阅读 · 0 评论 -
numpy根据条件取值
示例代码:import numpy as npmy_np1 = np.arange(18).reshape(3,6)print(my_np1[my_np1<10]) #打印[0 1 2 3 4 5 6 7 8 9]print(my_np1[(my_np1>2)&(my_np1<6)]) # 与:& 打印:[3 4 5]print(my_np1[(my_np1<2)|(my_np1>6)]) # 或:| 打印:[ 0 1 7原创 2021-01-01 22:11:27 · 1266 阅读 · 0 评论 -
numpy数据类型操作和切片操作(一维和多维)
代码示例:import numpy as np#数据类型操作相关my_np1 = np.array([[1,2,3,4],[5,6,7,8]],dtype=np.int32)print(my_np1.itemsize) #返回数组中每个元素的字节单位长度,打印4print(my_np1.dtype) # 获取数据类型,打印int32my_np1_new = my_np1.astype(np.float) #更改数据类型print(my_np1_new.dtype)原创 2020-12-30 16:39:44 · 360 阅读 · 2 评论 -
numpy的简单使用和变形等操作
代码示例:import numpy as np#一维数组简单使用my_list1 = [5,6,7,8]my_np1 = np.array(my_list1)print(type(my_np1)) #打印:<class 'numpy.ndarray'>print(my_np1) #打印:[5 6 7 8]print(my_np1.shape) #打印(4,),代表数组形状(行,列),本例代表4行1列my_np2 = np.arange(1,10,2)p原创 2020-12-30 14:52:31 · 144 阅读 · 0 评论 -
matplotlib饼图(pie、explode、shadow、labeldistance)
代码示例:# 5. 绘制饼图import matplotlib.pyplot as pltimport matplotlibfrom matplotlib import font_managermy_font = font_manager.FontProperties(fname='./STSONG.TTF',size=10)label_list = ["第一部分", "第二部分", "第三部分"] # 各部分标签size = [55, 35, 10] # 各部分大小col原创 2020-12-29 21:31:10 · 7080 阅读 · 0 评论 -
matplotlib直方图(hist、bins、组距、组数)
代码示例:#统计电影时长的分布状态movies_time = [131,98, 125, 131, 124, 139, 131, 117, 128, 108, 135, 138, 131, 102, 107, 114, 119, 128, 121, 142, 127, 130, 124, 101, 110, 116, 117, 110, 128, 128, 115, 99, 136, 126, 134, 95, 138, 117, 111,78, 132, 12原创 2020-12-29 21:25:32 · 7813 阅读 · 0 评论 -
matplotlib罗列条形图(bottom)
代码示例:import matplotlib.pyplot as pltimport matplotlib.font_manager as fmimport numpy as npindex = np.arange(4)TJ = [30,66,54,45]BJ = [70,56,64,35]my_font = fm.FontProperties(fname='/System/Library/Fonts/PingFang.ttc',size=10)plt.bar(index,TJ,wid原创 2020-12-29 21:10:33 · 635 阅读 · 0 评论 -
matplotlib并列条形图(bar、width)
代码示例:import matplotlib.pyplot as pltimport matplotlib.font_manager as fmimport numpy as npindex = np.arange(4)TJ = [30,66,54,45]BJ = [70,56,64,35]my_font = fm.FontProperties(fname='/System/Library/Fonts/PingFang.ttc',size=10)plt.bar(index,TJ,wid原创 2020-12-29 21:06:25 · 1716 阅读 · 0 评论 -
matplotlib横向条形图(barh、get_width、get_y)
代码示例:import matplotlib.pyplot as pltimport matplotlib.font_manager as fmmy_font = fm.FontProperties(fname='/System/Library/Fonts/PingFang.ttc',size=10)a = ['流浪地球', '疯狂的外星人','飞驰人生','大黄蜂','熊出没.原始时代','新喜剧之王']b = [38.13, 19.85, 14.89, 11.36,6.47,5.93]原创 2020-12-29 20:52:39 · 2802 阅读 · 0 评论 -
matplotlib绘制条形图(bar、设置不同的颜色、设置每个条形图文字)
代码示例:'''绘制电影票房条形图a = ['流浪地球', '疯狂的外星人','飞驰人生','大黄蜂','熊出没.原始时代','新喜剧之王']b = ['38.13', '19.85', '14.89', '11.36','6.47','5.93']'''import matplotlib.pyplot as pltimport matplotlib.font_manager as fma = ['流浪地球', '疯狂的外星人','飞驰人生','大黄蜂','熊出没.原始时代','新喜剧原创 2020-12-22 21:38:28 · 22221 阅读 · 2 评论 -
matplotlib绘制散点图(scatter)
代码示例:'''4月份每天的最高气温a=[12,16,11,12,11,12,6,6,7,18,9,12,15,14,17,18,21,16,17,25,14,15,15,15,19,21,22,22,22,23]'''import matplotlib.pyplot as pltimport matplotlib.font_manager as fmx = range(1,31)y = [12,16,11,12,11,12,6,6,7,18,9,12,15,14,17,18,21,1原创 2020-12-22 21:20:13 · 338 阅读 · 0 评论 -
matplotlib(改变坐标轴的默认显示方式:set_color、set_position)
代码示例:import matplotlib.pyplot as plty = range(0,14,2)x = [-3,-2,-1,0,1,2,3]#获取当前图表的图像pic = plt.gca()#设置图像的包围线pic.spines['right'].set_color('none')pic.spines['top'].set_color('none')pic.spines['left'].set_color('blue')pic.spines['bottom'].set_原创 2020-12-22 21:05:40 · 1729 阅读 · 0 评论 -
matplotlib折线(截取坐标系)
代码示例:import matplotlib.pyplot as pltimport numpy as npx = np.arange(-10,11,1)y = x**2plt.plot(x,y)#plt.xlim([-5,5]) #截取x轴左右两边#plt.xlim(xmin=-4) #截取x轴左边#plt.xlim(xmax=4) #截取x轴右边plt.ylim(ymin=0)plt.xlim(xmin=0)plt.show()效果截图:...原创 2020-12-22 20:53:04 · 886 阅读 · 0 评论 -
matplotlib折线图(一图多个坐标系子图)
代码示例:import matplotlib.pyplot as pltimport numpy as npx = np.arange(1,100)fig = plt.figure(figsize=(20,10),dpi=80)# 创建子图1sub1 = fig.add_subplot(2,2,1)sub1.plot(x,x)#创建子图2sub2 = fig.add_subplot(2,2,2)sub2.plot(x,x**2)sub2.grid(color='r',lines原创 2020-12-22 20:38:50 · 1142 阅读 · 0 评论 -
matplotlib折线图(图例-legend、网格-grid)
代码示例:import randomfrom matplotlib import pyplot as pltfrom matplotlib import font_managery1 = [0,0,1,1,2,4,3,4,4,5,6,5,4,3,3,1,1,8,1,1]y2 = [0,1,3,1,2,2,3,4,3,2,1,2,1,1,1,6,1,1,1,1]x = range(11,31)plt.figure(figsize=(20,8),dpi=80)plt.plot(x,y1,c原创 2020-12-22 17:27:34 · 2754 阅读 · 0 评论 -
matplotlib折线图(字体设置-FontProperties、轴信息设置-x/ylabel、标题设置)
代码示例:'''matplot1ib只显示英文,无法显示中文,需要修改matplot1ib的默认字体。通过matp7otlib下的font_ manager 可以解决'''import randomfrom matplotlib import pyplot as pltfrom matplotlib import font_managerx = range(0,120)y = [random.randint(25,45) for i in range(120)]plt.figure(原创 2020-12-22 16:24:37 · 2504 阅读 · 1 评论 -
matplotlib折线图(x/y轴刻度、刻度标签、标签旋转)
代码示例:import randomfrom matplotlib import pyplot as pltx = range(2,26,2) y = [random.randint(12,35) for i in x]plt.figure(figsize=(20,8),dpi=80)# 设置x轴的刻度# plt.xticks(x)# 设置y轴的刻度# plt.yticks(range(min(y),max(y)+1))# 构造x轴刻度标签xticks_label = [f"原创 2020-12-22 15:12:00 · 8396 阅读 · 0 评论 -
matplotlib折线图(设置图片大小和图片保存)
代码示例:from matplotlib import pyplot as pltx = range(1,10) #x轴的位置y = [6,7,12,12,15,17,15,20,18] #y轴的位置'''画布对象中设置图片的大小figsize:指定figure的宽和高,单位为英寸;dpi参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为801英寸等于2.5cm, A4纸是21* 30cm的纸张'''plt.figure(figsize=(20,8),dpi=90)#传入x,y原创 2020-12-21 16:31:36 · 6344 阅读 · 0 评论 -
matplotlib折线图(标记点、标记点大小、标记点边颜色、标记点边宽)
代码示例:from matplotlib import pyplot as pltx = range(1,10) #x轴的位置y = [6,7,12,12,15,17,15,20,18] #y轴的位置#传入x,y,通过plot画图,并设置折线颜色、透明度、折线样式和折线宽度 标记点、标记点大小、标记点边颜色、标记点边宽plt.plot(x,y,color='red',alpha=0.3,linestyle='--',linewidth=5,marker='o' ,marke原创 2020-12-21 16:21:19 · 49393 阅读 · 0 评论 -
matplotlib折线图(折线颜色、透明度、折线样式和折线宽度)
代码实例:from matplotlib import pyplot as pltx = range(1,10) #x轴的位置y = [6,7,12,12,15,17,15,20,18] #y轴的位置#传入x,y,通过plot画图,并设置折线颜色、透明度、折线样式和折线宽度plt.plot(x,y,color='red',alpha=0.3,linestyle='--',linewidth=5)plt.show'''基础属性设置color='red' :折线的颜色a1pha=0.5原创 2020-12-21 16:06:28 · 6129 阅读 · 0 评论