numpy和pandas学习,day1

numpy和pandas学习,day1



前言

Numpy(Numerical Python) 是 Python语言的一个第三方库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。Numpy是一个运行速度非常快的数学库,主要用于数组计算。

Pandas是基于NumPy数组构建的,也是Python语言的第三方库,Pandas使数据预处理、清洗、分析工作变得更快更简单,主要用于数据分析。

Pandas是专门为处理表格和混杂数据设计的,相当于Python的Excel,而Numpy更适合处理统一的数组数据。

Numpy和Pandas都是第三方库,需要预先安装好后才能导入使用,如果安装了Anaconda,则不必另外安装(因为Anaconda会自动安装很多数据分析用的第三方库)。

最近将和读者一起学习一下简单的numpy和pandas的用法

本文是第一篇。


一、正常导入需要的pandas和numpy包

import pandas as pd
import numpy as np

接下来我们将开始这两个包的简单讲解实例

二、使用步骤

1.创造DataFrame

在字典中以键值对的形式进行数据的编写,其中键是列名,值是列的值,列一般以数组的形式呈现,每一个键值对用逗号隔开。

data = {"grammer":['Python', 'C', 'Java', 'GO', np.NaN, 'SQL', 'PHP', 'Python'],
       "score":[1.0, 2.0, np.NaN, 4.0, 5.0, 6.0, 7.0, 10.0]}
df = pd.DataFrame(data)
df

在这里插入图片描述

2.读取符合要求的某一行数据

找出df中grammer列等于Python的行。

方法一好理解,方法二中的contains方法将返回布尔值,由于df中存在NAN,所以又加了一步fillna,将NAN的值全部替换为False,fillna的作用是替换列中的NAN值,将其替换为value,而inplace则是是否在原df上修改。

#方法一
df[df['grammer']=='Python']
# 方法二
result = df['grammer'].str.contains('Python')  #该列是否包含Python,返回布尔值
result.fillna(value=False,inplace=True)     # 将NAN变为False,注意False不能加''
df[result]


#读取
df[df['score']>3] # 找出score中大于三的列

df[(df['score']>3) & (df['score']<6)]    # popularity大于3小于6的列,主要&连接的两边是()保住的

df[df['score']==df['score'].max()]  # 提取出popularity最大值的行

在这里插入图片描述

3.读取所有的列名

df.columns  #输出df所有列名

在这里插入图片描述

4.修改列名

df.rename(columns={'score':'popularity'},inplace=True)  #修改列名

在这里插入图片描述

5.统计某一列中的各个数据出现次数

统计grammer列中,每一种语法在数据中出现的次数

df['grammer'].value_counts()  #统计grammer列中每个属性出现的次数 

在这里插入图片描述

6.使用上下平均值替换空值

这个用的是上文中提到的替换空值函数fillna,即使用value的值替换NAN值,而这段的value为df[‘popularity’].interpolate()是popularity的列的NAN处的上下值的平均值。

df['popularity'].fillna(value=df['popularity'].interpolate(),inplace=True)  #用上下值的平均值进行替换

在这里插入图片描述

7.统计,删除重复值

删除重复行中的keep为保留,可以是first,last等,为保留第一个或最后一个。

df.duplicate().sum() #统计重复的皇叔
df.drop_duplicates(['grammer'],keep='first')  #删除grammer列中重复的行

在这里插入图片描述

8.计算某列的统计值

计算某列的统计值,统计值为一些统计函数,如mean,max,min等。

df['popularity'].mean()   #计算popularity的平均值
df['popularity'].min()    #计算popularity的最小值

9.将某列数据转换为列表

df['grammer'].to_list()   #将grammer列变为列表

在这里插入图片描述

9.将DataFrame保存为csv文件

df.to_csv('test.csv')    # 将dataframe保存为csv文件

10.查看行列数

df.shape   #查看行列数

在这里插入图片描述

11.插入,删除列,交换两个列的位置

#交换两个列的位置
temp = df['popularity']
df.drop(labels=['popularity'],axis = 1,inplace = True)    #删除grammer列
df.insert(0,'popularity',temp)                             #插入一列,索引为0,列名为popularity
df

drop函数用于删除某列,labels后是一个列表,里面是要删除的列名,axis=1,代表是按列删除
insert函数则是插入列,0是插入的索引,popularity是列名,temp是插入的数据

在这里插入图片描述

12.生成数列

np.random.randint(0,100,20) #生成20个0到100的随机数

np.arange(0,200,10)   #生成固定步长

np.random.normal(0,1,20) #生成20个随机分布(正态分布的数) 

在这里插入图片描述

13.返回索引位置

np.array(df[‘score’] % 5 ==
0)返回的是相应数量的布尔值列表,而argwhere函数则是找出列表中的True值并返回索引列表

data = {"grammer":['Python', 'C', 'Java', 'GO', 'css', 'SQL', 'PHP', 'Python'],
       "score":[1.0, 2.0, 6.0, 4.0, 5.0, 6.0, 7.0, 10.0]}
df = pd.DataFrame(data)
np.argwhere(np.array(df['score'] % 5 == 0))  #返回能够被5整除的score的索引位置


找出两列中同一行相同的值的索引
df['cycle'] = [2.0, 3.0, 6.0, 3.0, 5.0, 2.0, 7.0, 5.0]
#方法一:值相等
df[df['score'] == df['cycle']].index

#方法二
np.where(df['score']==df['cycle'])

在这里插入图片描述

总结

numpy和pandas这玩意直接看固然枯燥瞌睡,但是这些都是必备的实用知识,再瞌睡也是要好好看看的

  • 19
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值