数据分析第二天--pandas DataFrame部分和数据导入导出

1.pandas DataFrame部分

昨天讲了序列部分,今天来讲讲pandas的数据框,其实是昨天偷懒没写。环境还是一样,用spyder就好。

概念

数据框(DataFrame)用于存储多行和多列的数据集合,有点像Excel表格,它的不同列可以是不同的数据类型。

定义一个数据框

通过pandas的DataFrame函数通过字典来生成数据框,这个函数一般包含三个参数。
pandas.DataFrame(data=None,index=None,columns=None)

参数说明
data数据用字典表示,默认为空
index索引可以方便找到某个数据,默认为空
columns数据中要使用的列,用于控制列的顺序,默认为空

下面就来生成一个数据框

import pandas as pd

#定义数据框,通过data参数指定数据
dataframe=pd.DataFrame(
        data={
                'name':['a','b','c'],
                'age':[20,22,29]
                }
        )
print(dataframe)

可以在变量框中点击dataframe看到生成的数据框的内容
在这里插入图片描述
如果需要自定义索引值,并且指定列的顺序就需要使用index,columns参数进行设置。

#通过index columns参数进行设置
df=pd.DataFrame(
        data={
                'name':['a','b','c'],
                'age':[20,22,29]
                },
        index=['first','second','third'],
        columns=['age','name']  
        )

在这里插入图片描述
可以看到索引行变成了我们设定的,而且列的顺序替换成我们设置的。

对DataFrame的增删改查

增添数据

使用append函数,添加的数据也要是数据框类型,第二个参数可以选择是否忽略新加入数据框的索引,默认是False不忽略。

#为df增加dataframe中的数据
df=df.append(dataframe)

在这里插入图片描述

#为df新增加一列数据
df['class']=[1,2,3,4,5,6]

在这里插入图片描述
记得新增加列的行数一定要与原本数据框的行数保持一致

删除数据

使用drop函数
pandas.DataFrame.drop(labels,axis=0,inplace=False,errors=‘raise’)

参数说明
labels要删除数据行对应的索引,可以一个或者多个
axis0代表index也就是行,1代表column也就是列
inplace是否修改原来的数据框,默认为False
errorslabels不存在时是否报错,默认为raise也就是报错
#删除df索引为1的行
df=df.drop(1,axis=0)
#删除df列名为name的列
df=df.drop('name',axis=1)

在这里插入图片描述
在这里插入图片描述

更改数据

修改数据框中的值,索引或者列名都可以直接通过改变对应的值,再重新赋值来完成改变。

#更改数据框中的值,索引,和列名
df.columns=['A','B']
df.index=[1,2,3,4,5]
df.at[1,'A']=100

在这里插入图片描述

查找数据

一般我们数据分析对数据框进行查找时,一般会根据某些条件过滤再查找,这个过程也可以叫记录抽取。

#查找数据框中的值
print(df['A'])
print(df.iloc[2])

在这里插入图片描述

DataFrame运算的使用

#DataFrame数据计算
#目标:生成一个数据框,先对它求平方,再对它进行四则运算,最后把结果放入数据框
data=pd.DataFrame(
        data={
                'A':[1,3,5,7,9]
                }
        )
data['B']=data.A.pow(2)
data['add']=data.B+data.A
data['sub']=data.B-data.A
data['mul']=data.B*data.A
data['div']=data.B/data.A

在这里插入图片描述

#使用iterrows函数返回每一行数据,并且添加列c作为A+B的结果
for index,r in data.iterrows():
    print(index)
    print(r)
    print('---------------')
    
c=[]
for index,r in data.iterrows():
    c.append(r['A']+r['B'])
data['c']=c

在这里插入图片描述
在这里插入图片描述

2.数据的导入导出

数据导入

首先如果数据时以数据库的形式存放的话,只需要连接数据库,然后读取数据就可以了,我主要讲讲文件形式存放数据的导入方法。

csv文件的导入
csv文件是以逗号作为分隔符的一种纯文本文件
pandas导入csv文件主要用read_csv函数
常用的参数有filepath,sep,names,encoding。
filepath就是想要导入csv文件的路径,一般使用绝对路径,且用/或者\表示。
sep表示分隔符,一般csv文件默认是逗号。
names表示导入的列和指定列的顺序,默认按顺序导入所有列。
encoding表示文件编码,大多时候会让encoding=‘utf-8’。

txt文件的导入
txt文件也就是文本文件,应该是我们最常见的一种
导入txt文件我们一般用read_table函数
参数和read_csv函数中的一样
但是由于txt文件分隔符不确定,所以它的参数设置要比csv文件更准确,一般要设置好列名(names),分隔符(sep)和编码(encoding)

Excel文件的导入
Excel文件本身就很直观,而且也拥有计算,图标等功能
一般用pandas的read_excel函数来导入数据
它的参数只有路径名,读取的表格名,读取的列名,不过一般我们只用写好路径名就行了。

数据导出

我们处理完数据之后,想要把处理好的结果保存起来,就需要数据导出。
在pandas中我们用to_csv函数导出数据
参数和read_csv差不多一共有五个,文件路径,分隔符,索引,列名和编码
文件路径:记得最后写上.csv文件格式
分隔符:输出文件的分隔符,默认为逗号,也可以用制表符等等
索引:是否输出索引,默认为输出索引,如果不想要可以改为False
列名:是否输出列名,默认为输出列名
编码:默认为utf-8

3.总结

今天算是把昨天的任务都补上了,另外呢我也上传了我精心收集的一些关于python的学习资料,内容大概有将近4G,如果想学的小伙伴可以去下载,链接为
https://download.csdn.net/download/shelgi/11390809
希望大家能支持一下,毕竟收集这些资料我也花了不少精力和那啥嘛(不谈$,不然显得太俗,嘻嘻)。下次呢我会聊聊关于数据处理的内容,拜拜

  • 10
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shelgi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值