当前位置: 首页 > news >正文

pandas

一、pandas初级

在这里插入图片描述
安装matplotlib:pip install matplotlib
安装pandas:pip install pandas
本地C:\Users\Administrator\pip,在此目录配置清华园的远程下载
在这里插入图片描述
配置内容:

[global]
index-url=https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=mirrors.aliyun.com

1.1 花色调整

import numpy as np
import matplotlib.pyplot as plt
img=plt.imread('./向日葵.jpg')
img.shape  #高、宽、颜色,(1200, 1920, 3)
# 1200高度像素
# 1920宽度像素
# 3 颜色通道:红绿蓝
plt.imshow(img) #展示图像,红绿蓝,红色
plt.imshow(img[:,:,::-1]) #蓝绿红,蓝色
plt.imshow(img[:,:,[1,0,2]]) #绿红蓝,绿色

1.2 pandas

1.2.1 数据结构

一维结构

import pandas as pd
s=pd.Series(data=[0,3,5,7],index=['a','b','c','d'])#指定索引,一一对应
s=pd.Series(data=[0,3,5,7])#不指定索引,默认从0自增
s

0 0
1 3
2 5
3 7
dtype: int64

二维结构
第一种方式:

import pandas as pd
import numpy as np
#Excel类似
#创建DataFrame第一种方式
pd.DataFrame(data=np.random.randint(0,150,size=(5,3)),columns=['Python','En','Math'],
            index=list('ABCDE'),dtype=np.float32)

在这里插入图片描述
第二种方式:

import pandas as pd
import numpy as np
#Excel类似
#创建DataFrame第二种方式,字典中的key作为列索引,冒号后面表示数据

pd.DataFrame(data={'Python':np.random.randint(100,150,size=5),
                   'En':np.random.randint(0,150,size=5),
                   'Math':np.random.randint(0,150,size=5)},index=list('ABCDE'))
                   

在这里插入图片描述

1.2.2 数据查看

import numpy as np
import pandas as pd
df=pd.DataFrame(data=np.random.randint(0,151,size=(150,3)),
               index=None,#行索引默认
               columns=['Python','Math','En'])#列索引
# df.head(10)#查看前10行
# df.tail#默认查看后5个
# df.shape#查看形状
df['Python']=df['Python'].astype(np.int64)#修改数据类型
df.dtypes#查看数据类型
df.index#行索引
df.columns#列索引
df.values#对象值,二维数组
df.describe()#查看数值型列的汇总统计,平均值,最大值最小值等
df.info()#查看列索引、数据类型、非空计数和内存信息

在这里插入图片描述

1.2.3 数据的输入和输出

第一节:csv

import numpy as np
import pandas as pd
df=pd.DataFrame(data=np.random.randint(0,50,size=(50,5)),#薪资情况
                columns=['IT','化工','生物','教师','士兵'])
display(df)
#保存到当前路径
df.to_csv('./salary.csv',
          sep=',',#文本分隔符,尽量用逗号
           header=True,#是否保存列索引
           index=True#是否保存行索引,若保存,文件被加载时,默认行索引会作为一列
          )

#加载文件
pd.read_csv('./salary.csv',
           sep=',',
           header=[0],#指定列索引
           index_col=0)#指定行索引

第二节:Excel
pip install xlrd
pip install xlwt

import numpy as np
import pandas as pd
df1=pd.DataFrame(data=np.random.randint(0,50,size=(50,5)),#薪资情况
                columns=['IT','化工','生物','教师','士兵'])
df2=pd.DataFrame(data=np.random.randint(0,50,size=(150,3)),#计算机科目的考试成绩    
                columns=['Python','Tensorflow','Keras'])#列索引

df1.to_excel('./salary.xlsx',sheet_name='salary', #Excel中工作表的名字
             header=True,#是否保存列索引
             index=False)#是否保存行索引

pd.read_excel('./salary.xlsx',
            sheet_name=0,#读取哪一个Excel工作表,默认第一个,或者sheet_name='salary'
            header=0,#使用第一行数据作为列索引
            names=list('ABCDE'),#替换列索引
            index_col=1)#指定行索引,B作为行索引

一个Excel中保存多个工作表

with pd.ExcelWriter('./data.xlsx') as writer:
    df1.to_excel(writer,sheet_name='salary',index=False)
    df2.to_excel(writer,sheet_name='score',index=False)

Excel中保存的多个工作表中,读取一个

pd.read_excel('./data.xlsx',
             sheet_name='salary')#读取Excel中指定名字的工作表

1.2.4 数据选择

和Numpy的花式索引类似

df=pd.DataFrame(np.random.randint(0,150,size=(1000,3)),
                columns=['Py','En','Math'])
df

在这里插入图片描述
列获取:

# df['Py'] #不显示列索引
# df.Py #不显示列索引
df[['Py','Math']]#使用两个中括号时才会显示列索引
df[['En']] #显示列索引

行获取:

df2=pd.DataFrame(np.random.randint(0,150,size=(5,3)),
                index=list('ABCDE'),
                columns=['Py','En','Math'])
df2

在这里插入图片描述

df2.loc['A']#行索引
df2.loc[['A','D']]

在这里插入图片描述

# df2.iloc[0]#自然数索引,第一行
df2.iloc[[0,3]]#第1行,第4行

在这里插入图片描述
具体数值:

df2['Math']['B']#这个必须分开写 110
df2.loc['B']['Math'] #加了loc首先要跟行索引,注意先后顺序110
df2.loc['B','Math']#也是先行后列110
# iloc表示,先获取行,再获取列
df2.iloc[1,2]#110
df2.loc['A':'C','En':]

在这里插入图片描述

df2.iloc[2:4,[0,-1]]#第三行、第四行的第一列和最后一列

在这里插入图片描述

boolean索引:

cond=df['Py']==140
df[cond]

在这里插入图片描述

cond1=df['Py']>130
cond2=df['Math']>130
cond=cond1&cond2
df[cond]

在这里插入图片描述

相关文章:

  • qml使用c++自定义listmodel数据
  • Android学习之路(16) Android 数据库Litepal
  • 利用norm.ppfnorm.interval分别计算正态置信区间[实例]
  • 深度学习(1)---卷积神经网络(CNN)
  • Audacity 使用教程:轻松录制、编辑音频
  • OpenCV实现视频的追踪(meanshift、Camshift)
  • Ubuntu Zookeeper开机自启动服务
  • 快速选择排序
  • Spring的注解开发-注解方式整合MyBatis代码实现
  • 辅助驾驶功能开发-测试篇(2)-真值系统介绍
  • 宝塔反代openai官方API接口详细教程,502 Bad Gateway问题解决
  • 【IPC 通信】信号处理接口 Signal API(6)
  • 点击router-link时候会发生什么?
  • 分类预测 | MATLAB实现WOA-FS-SVM鲸鱼算法同步优化特征选择结合支持向量机分类预测
  • 步力宝科技爆款产品定位,开创智能物联网新商业
  • 博客无限滚动加载(html、css、js)实现
  • 简化数据库操作:探索 Gorm 的约定优于配置原则
  • javaWeb学生信息管理
  • 读书笔记|《数据压缩入门》—— 柯尔特·麦克安利斯 亚历克斯·海奇
  • 网盘搜索引擎:点亮知识星空,畅享数字宝藏!
  • 专访|《触碰你》导演长井龙雪:“秩父铁三角”不只是朋友
  • 对话|听老婆的话,UFC“下山虎”张名扬的铁汉柔情
  • 广西东兰官方通报“村民求雨耕种”:摆拍,恶意炒作
  • 外交部谈第十六个“联合国中文日”:期待更多人以中文为桥读中国,读懂世界
  • 中共中央台办、国务院台办在南京举办台商代表座谈会
  • 一季度江西GDP达7927.1亿元,同比增长5.7%