Pandas 库之 DataFrame

人工智能98

1 简介

DataFrame是Python中Pandas库中的一种数据结构,它类似excel,是一种 二维表

或许说它可能有点像matlab的矩阵,但是matlab的矩阵只能放数值型值(当然matlab也可以用cell存放多类型数据),DataFrame的单元格可以存放数值、字符串等,这和excel表很像。

同时DataFrame可以设置列名 columns与行名 index,可以通过像matlab一样通过位置获取数据也可以通过列名和行名定位,具体方法在后面细说。

2 创建DataFrame

首先声明一下,以下都是使用的Python 3.6.5版本为例,Python2应该也差不多吧(大概

在所有操作之前当然要先import必要的pandas库,因为pandas常与numpy一起配合使用,所以也一起import吧。

import pandas as pd
import numpy as np

如果还没安装直接在cmd里pip安装吧,如果有版本选择问题,参看之前的帖子。

pip install pandas
pip install numpy

2.1 直接创建

可以直接使用pandas的 DataFrame函数创建,比如接下来我们随机创建一个4*4的DataFrame。

df1=pd.DataFrame(np.random.randn(4,4),index=list('ABCD'),columns=list('ABCD'))

其中第一个参数是存放在DataFrame里的数据,第二个参数index就是之前说的行名(或者应该叫索引?),第三个参数columns是之前说的列名。

后两个参数可以使用list输入,但是注意,这个list的长度要和DataFrame的 大小匹配,不然会报错。当然,这两个参数是可选的,你可以选择不设置。

而且发现,这两个list是可以一样的,但是每行每列的名字在index或columns里要是 唯一的。

使用python自己的shell展示创建的结果是这样的:

Pandas 库之 DataFrame

或者在jupyter里面更酷点的样子,接下来都使用jupyter输出展示吧。

Pandas 库之 DataFrame

当然,如果你的数据量贼小,也可以自己输入创建,类似这样。

df2=pd.DataFrame([[1,2,3,4],[2,3,4,5],
                  [3,4,5,6],[4,5,6,7]],
                 index=list('ABCD'),columns=list('ABCD'))

这样也可以得到这样子的DataFrame:

Pandas 库之 DataFrame

2.2 使用字典创建

仍然是使用DataFrame这个函数,但是字典的每个key的value代表一列,而key是这一列的列名。比如这样。

dic1={'name':['小明','小红','狗蛋','铁柱'],'age':[17,20,5,40],'gender':['男','女','女','男']}
df3=pd.DataFrame(dic1)

输出结果是这样的

Pandas 库之 DataFrame

3 查看与筛选数据

python没有matlab的工作区直接查看变量与内容,这大概是python科学计算的一个缺点。所以需要格外的代码来查看,最基本的直接写变量名与print就不说了。

3.1 查看列的数据类型

使用dtypes方法可以查看各列的数据类型,比如说刚刚的df3。

df3.dtypes

输出的结果是这样:

Pandas 库之 DataFrame

3.2 查看DataFrame的头尾

使用head可以查看前几行的数据,默认的是前5行,不过也可以自己设置。

使用tail可以查看后几行的数据,默认也是5行,参数可以自己设置。

比如随意设置一个6*6的数据,只看前5行。

df4=pd.DataFrame(np.random.randn(6,6))
df4.head()

Pandas 库之 DataFrame

比如只看前3行。

df4.head(3)

Pandas 库之 DataFrame

比如看后5行。

df4.tail()

Pandas 库之 DataFrame

比如只看后2行。

df4.tail(2)

Pandas 库之 DataFrame

3.3 查看行名与列名

使用index查看行名,columns查看列名。具体由例子感受吧。

查看行名。

df1.index

Pandas 库之 DataFrame

查看列名。

df3.columns

Pandas 库之 DataFrame

3.4 查看数据值

使用values可以查看DataFrame里的数据值,返回的是一个数组。

比如说查看所有的数据值。

df3.values

Pandas 库之 DataFrame

比如说查看某一列所有的数据值。

df3['name'].values

Pandas 库之 DataFrame

还有另一种操作,使用loc或者iloc查看数据值(但是好像只能根据行来查看?)。区别是loc是根据行名,iloc是根据数字索引(也就是行号)。

比如说这样。

df1.loc['A']

Pandas 库之 DataFrame

或者这样。

df1.iloc[0]

Pandas 库之 DataFrame

*[En]*

**

df3['name']

Pandas 库之 DataFrame

3.5 查看行列数

使用shape查看行列数,参数为0表示查看行数,参数为1表示查看列数。

df3.shape[0]

Pandas 库之 DataFrame

df3.shape[1]

Pandas 库之 DataFrame

4 基本操作

DataFrame有些方法可以直接进行数据统计,矩阵计算之类的基本操作。

4.1 转置

直接字母T,线性代数上线。

比如说把之前的df2转置一下。

df3.T

Pandas 库之 DataFrame

4.2 描述性统计

使用describe可以对数据根据列进行描述性统计。

比如说对df1进行描述性统计。

df1.describe()

Pandas 库之 DataFrame

如果有的列是非数值型的,那么就不会进行统计。

如果想对行进行描述性统计,请参看4.1(转置后进行describe呀!)

4.3 计算

使用sum默认 对每列求和,sum(1)为 对每行求和。比如

df3.sum()

Pandas 库之 DataFrame

可以发现就算元素是字符串,使用sum也会加起来。

df3.sum(1)

Pandas 库之 DataFrame

而一行中,有字符串有数值则只计算数值。

数乘运算使用apply,比如。

df2.apply(lambda x:x*2)

Pandas 库之 DataFrame

如果元素是字符串,则会把字符串再重复一遍。

乘方运算跟matlab类似,直接使用两个*,比如。

df2**2

Pandas 库之 DataFrame

乘方运算如果有元素是字符串的话,就会报错。

4.4 新增

扩充列可以直接像字典一样,列名对应一个list,但是 注意list的长度要跟index的长度一致

df2['E']=['999','999','999','999']
df2

Pandas 库之 DataFrame

还可以 使用insert,使用这个方法可以指定把列插入到第几列,其他的列顺延。

df2.insert(0,'F',[888,888,888,888])
df2

Pandas 库之 DataFrame

4.5 合并

使用join可以将两个DataFrame合并,但只根据行列名合并,并且以作用的那个DataFrame的为基准。如下所示,新的df7是以df2的行号index为基准的。

df6=pd.DataFrame(['my','name','is','a'],index=list('ACDH'),columns=list('G'))
df6
df7=df2.join(df6)
df7

Pandas 库之 DataFrame

但是,join这个方法还有 how这个参数可以设置,合并两个DataFrame的交集或并集。参数为' inner'表示交集,' outer'表示并集。

df8=df2.join(df6,how='inner')
df8
df9=df2.join(df6,how='outer')
df9

Pandas 库之 DataFrame

如果要合并多个Dataframe,可以用list把几个Dataframe装起来,然后 使用concat转化为一个新的Dataframe。

df10=pd.DataFrame([1,2,3,4],index=list('ABCD'),columns=['a'])
df11=pd.DataFrame([10,20,30,40],index=list('ABCD'),columns=['b'])
df12=pd.DataFrame([100,200,300,400],index=list('ABCD'),columns=['c'])
list1=[df10.T, df11.T, df12.T]
df13=pd.concat(list1)
df13

Pandas 库之 DataFrame

Original: https://www.cnblogs.com/IvyWong/p/9203981.html
Author: 败北桑
Title: Pandas 库之 DataFrame



相关阅读

Title: tensorflow-gpu版本安装教程(过程详细)

准备工作
在开始安装前,如果你的电脑装过tensorflow,请先把他们卸载干净,包括依赖的包(tensorflow-estimator、tensorboard、tensorflow、keras-applications、keras-preprocessing),不然后续安装了tensorflow-gpu可能会出现找不到cuda的问题。
使用pip卸载的命令如下:

pip uninstall tesnsorflow
pip uninstall tensorboard
...

一般安装过python都会自带pip,如果电脑还没有安装python,可以去官网下载相应版本,推荐python3.8以上版本。

正式安装
第一步:安装cuda
1.首先查看本机GPU对应的cuda版本,如下图所示,本机cuda版本为11.5,后面选择的cuda版本不要超过这里的版本就好。
Pandas 库之 DataFrame
2.检查完cuda之后,进入https://developer.nvidia.com/cuda-toolkit-archive该网站选者相应的cudatoolkit版本下载(tensorflow-gpu用到cudatoolkit,没必要把整个cuda都下载下来),如图所示,本机选择下载的版本为10.1,这里选择版本一定要注意,因为cuda版本会决定你下载的cudnn和tensorflow-gpu版本,若不一致,会出现版本不匹配等问题,无法使用,详细情况下面阐述。
Pandas 库之 DataFrame
3.下载完cuda之后
①双击安装包,此时会出现一个提示框,让你选择临时解压位置(该位置的内容在你安装完cuda之后会自动删除),这里默认即可,点击ok。
Pandas 库之 DataFrame
②完成上一步后,选择自定义,然后点下一步。
③完成上一步,这里CUDA一定要勾选上,下面的可选可不选,对后续没有影响。
Pandas 库之 DataFrame
④然后一直下一步,等待安装结束(中间让选择安装位置时,可以更改目录,最好只改前面的盘符,后面的文件夹保持一致,方便以后管理)。
⑤完成安装后,检查一下环境变量是否存在,一般安装完成会自动配置好环境变量,若是没有,则需手动配置,具体过程如下。
a.打开电脑属性,找到高级系统设置,选择环境变量打开。
Pandas 库之 DataFrame
b.查看是否有以下环境变量,没有则需要自行添加,对应图片上的名称和值,配置你电脑CUDA安装所在的位置。
Pandas 库之 DataFrame
c.打开系统变量的Path,查看是否有一下两条内容,若没有则需自行添加,一定要配置对安装的位置。
Pandas 库之 DataFrame
CUDA的安装就结束了,接下来下载解压cuDNN文件。

第二步:安装cuDNN
打开该网址https://developer.nvidia.com/rdp/cudnn-archive,第一次单击下载时,会让你先注册登录,然后再进行下载,注册过程认真填写内容就没问题,此处略过,接下来进入下载环节。
①首先,根据安装的CUDA版本下载对应的cuDNN版本,以及对应的tensoflow-gpu版本、python版本都从这里查看,详细信息查看该网址https://tensorflow.google.cn/install/source_windows
Pandas 库之 DataFrame
因为本机安装的CUDA10.1版本,所以选择cuDNN7.6进行下载,下面红框中的都可以选择。
Pandas 库之 DataFrame
②下载完成后,解压此文件,将cudnn文件中对应的文件移动到cuda对用安装目录中,注意不要移动到错误的位置。

解压的 cudnn文件安装的cuda目录bin\cudnn64_7.dll文件—>D:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin中include\cudnn.h文件—>D:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\include中lib\x64\cudnn.lib文件—>D:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\lib\x64中

Pandas 库之 DataFrame
cuDNN的安装到这就结束了,接下来就要安装期待已久tensorflow-gpu。

第三步:安装tensorflow-gpu
这里将介绍两种安装方式,第一种使用pip直接安装的,第二种使用Anaconda(如果选择这一步,就不需要额外下载python,以及各种常用工具包,它会打包下载好)。
第一种:使用pip直接安装(本机采用该方式)
首先,打开cmd命令行界面,这里建议使用管理员身份打开。
Pandas 库之 DataFrame
然后,就可以在命令行中输入以下命令进行安装:

pip install tensorflow-gpu==2.3.0 --default-timeout=100 -i https://pypi.tuna.tsinghua.edu.cn/simple

后面的后缀使用的是清华镜像,若不是使用,则是从国外网站进行安装,有很大可能下载不下来,导致安装失败,除了清华源,这里再提供几个常用的源。

中科大镜像:https://pypi.mirrors.ustc.edu.cn/simple
豆瓣镜像:http://pypi.douban.com/simple/
阿里镜像:https://mirrors.aliyun.com/pypi/simple/
百度镜像:https://mirror.baidu.com/pypi/simple

注:这里选择的tensorflow-gpu版本要和之前选择的cuda版本对应,对应图在上面。安装过程比较缓慢,耐心等待即可。

到此为止,使用pip安装tensorflow-gpu就结束了,接下来可以进行测试是否可以正常运行,新建一个python文件,输入以下命令,可以使用任何方式运行这段代码(这里使用的是pycharm,若没有则直接进入官网下载即可,十分方便),当出现下图红色内容时,说明成功运行tensorflow-gpu版本。

import tensorflow as tf
tf.autograph.set_verbosity(0)
physical_devices = tf.config.experimental.list_physical_devices('GPU')
print(physical_devices)
config = tf.config.experimental.set_memory_growth(physical_devices[0], True)

Pandas 库之 DataFrame

第二种:使用Anaconda进行安装(已经使用pip安装成功的,就不需要往下进行了)
关于Anaconda的安装和配置参见下面两篇文章,本文就不再赘述。
https://zhuanlan.zhihu.com/p/75717350
https://blog.csdn.net/ITLearnHall/article/details/81708148
安装完Anaconda后就可以进行tensorflow-gpu的安装了。
以下内容转载https://zhuanlan.zhihu.com/p/339734279中的内容,因为本机并没有采用这种方式安装。
首先,打开cmd命令行界面,按下面步骤进行操作。(建议以管理员身份打开)
1、切换opentuna的pip镜像源。(为了加速下载速度)

pip config set global.index-url https://opentuna.cn/pypi/web/simple

2.创建虚拟环境。输入以下命令(后面跟你电脑安装的python版本)。

conda create -n tensorflow2 python=3.8

3.激活虚拟环境。

conda activate tensorflow2

4.安装tensorflow2.3.0(此处要和你的cuda和cudnn版本相对应)。我们使用pip来安装,pip安装后自带gpu支持,不需要额外安装gpu版本。 我们此处使用pip而不采用conda,是因为conda中版本可能较旧而且作者使用conda后安装失败。如此处自行使用conda后安装失败并不表示本教程有问题!特此提前说明!强烈建议您在此处根据作者建议使用pip!

pip install tensorflow==2.3.0

上诉命令,作者没试过能不能成功使用gpu版本,建议直接使用下面命令安装。

pip install tensorflow-gpu==2.3.0

5.验证安装是否成功。输入以下语句,如果如图所示输出了自己的GPU,则表示安装成功!否则安装失败,请检查步骤后重试或向作者提问。

python
import tensorflow as tf
tf.config.list_physical_devices('GPU')

提示下面内容为安装成功。
Pandas 库之 DataFrame

Original: https://blog.csdn.net/qq_43215538/article/details/123852028
Author: 指尖在键盘上舞动
Title: tensorflow-gpu版本安装教程(过程详细)