第二课堂笔记——Pandas入门(数据分析)

一、载入数据,导入相关库

利用python入门中的知识导入库。

载入数据:

df=pd.read_csv('路径')

二、数据基本操作

1.逐块读取

格式:chunker=pd.read_csv('train.csv',chunksize=1000)

           for i in chunker:

                print(i)

read_csv与read_table对比:

      csv得到的表格对齐,分隔符为逗号,而table按每行输出,上下对应但不对齐,分隔符为制表符'\t'。可以通过在括号内添加sep=','/sep='\t'相互转化。

csv与tsv对比:

       tsv文件以制表符为分隔符,标准格式下,字段值之中不允许出现制表符。而csv文件以半角逗号为分隔符(也可以是逗号、其他字符、字符串)。

2.查看基本信息(总列数,非空值数量,数据类型等):df.info()

3.查看前/后几列数据(2):df.head()/df.tail()

4.判断数据是否为空:df.isnull()

5.保存数据:df.to_csv()

6.查看列名:全部——df.columns

                    某A列(2)——df['A']/df.A

7.更改表头(2)

法一:df=pd.read_csv('train.csv',names=['表头1','表头2',....],index_col='',header=0)

index_col更改索引,header确定替换列名为第几行。

法二:创建字典,

column={'header1':'表头1','header2':'表头2',.....}

df.rename(columns=column,inplace=True)

(inplace=True时,直接在原始数据上进行重命名操作;=False时,返回重命名后新的DateFrame,原始数据不变)

8.删除/隐藏某列(2):删除:del df['A']/df.drop(['A'],axis=1)

df=df.drop(['a'],axis=1)

(当axis=0时代表行,1代表列)

隐藏:df.drop(['列名'],axis=1)

对比:del直接删除,drop需要再赋值才可(df=..drop..),否则并不改动原数据(即隐藏),del若想实现“隐藏”,需要分别保存改动前后的数据。

9.数据筛选:

范围筛选:df=df[(df['Age']<50)&(df['Age']>10)]筛选在10-50的数据,并修改。

显示某行(2):df.loc[[行数],['列名']]

                      df.iloc[[行数],['列数']]

                     对比:loc通过列名实现,iloc通过索引位置实现筛选

(若在排序、分组、删除等操作后,要对修改后数据筛选,注意使用reset_index()重置索引。)

10.构建frame:

frame=pd.DataFrame(np.arange(12).reshape(3,4),(构建从0-11,3行4列的矩阵)

                     index=['1','0','2'],(行索引)

                     columns=['X','B','F','G'])(列索引)

对比数据结构DataFrame和Series:

DataFrame(二维)每列可以有不同的数据类型,Series(一维)仅有一种数据类型。

 

11.数据排序:根据索引排序:frame.sort_index(axis=1,asxending=False,inplace='True')(axis=1为列,ascending中False为降序,默认axis=0,升序排序。inplace默认False,若想改变原数据,需写成True,以下同理)

                     根据值排序:frame.sort_value(by='列名',ascending='',inplace='')(不接受axis参数)

12.算术运算(这里仅简单记录加法):+:frame_1['列名']+frame_2['列名']或使用apply函数:

                          df1.apply(lambda row:row['列名']+row['列名'],axis=1)

13.筛选极值(2):法一:python的max()/min()函数:max(表达式)

                                法二:df.max()(若对象为DataFrame或Series)

14.describe查看数据基本信息:df.describe()

count : 样本数据大小

mean : 样本数据的平均值

std : 样本数据的标准差

min : 样本数据的最小值

25% : 样本数据25%的时候的值

50% : 样本数据50%的时候的值

75% : 样本数据75%的时候的值

max : 样本数据的最大值

15.筛选非空行/空行:

single=df[df['列名a'].isnull()](single为a为空的列)

single=df[df['列名b'].isnull()](dual为a不为空的列)

16.重复数据删除:

例:df.drop_duplicates('列名a',keep='first')

(相同列名a保留第一条)

17.数据分组:

种类分组:group=df.groupby(['列名a','列名b']).size()(若想统计各组个数就加后面的size,否则不用)

条件分组:例:df['列名a'](要分组的列)=df['列名a'].apply(lambda x(lambda函数:匿名函数,令x为列a中的元素,后续则是关于x的条件):'high'if int(x)>100 else 'low' if int(x)<50 else 'mid')

 

 

 

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值