Python随笔 Pandas笔记

Pandas笔记

首次编辑:2020-08-05
编辑人:Cairne

Pandas简介

Pandas是Python的一个数据分析包,该工具为解决数据分析任务而创建。Pandas纳入大量库和标准数据模型,提供高效的操作数据集所需的工具也提供大量能使我们快速便捷地处理数据的函数和方法。
Pandas是字典形式,使用 <key,value> 方式进行存储和使用,可以啊使用key作为索引来查找数据。

主要数据结构:
Series:一维数组,需相同类型。
DataFrame:二维数组,理解为Series的容器。
Panel:三维数组。
与此同时兼容所有Python数据结构

Pandas 安装

pip安装1

pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。
安装Python的流程不在这里记录,需要首先安装pip,安装pip语句如下

#下载你对应版本的pip:
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
# Python2:
$ sudo python get-pip.py
# Python3:
$ sudo python3 get-pip.py
# 查看pip版本
$ pip --version
$ pip3 --version

下载(.py)文件完成截图
下载完成截图
下载遇到问题的朋友可以直接在代码第二行的网址下载再上传进行安装。
pip安装流程截图
安装完成截图
查看pip版本:

查看pip版本
至此pip安装完成
常用pip指令总结

# 安装包
$ pip install pandas
# 升级包
$ pip install --upgrade pandas
# 搜索包
$ pip search pandas
# 删除包
$ pip uninstall pandas
# 显示包信息
$ pip show 
# 显示指定包信息
$ pip show -f pandas
# 列出已安装包
$ pip list
# 查看可升级包
$ pip list -o

Pandas安装2

Pandas是Python的第三方库,需要使用pip工具进行下载
安装语句:

# 安装Pandas
$ pip install pandas

安装完成截图:
Pandas安装完成截图

Pandas主要指令

Pandas数据结构

pd.Series
import numpy as np
import pandas as pd

s=pd.Series([1,2,3,np.nan,5,6])
print(s)

运行成功截图

pd.DataFrame
import numpy as np
import pandas as pd

dates = pd.date_range('20200805',periods=6)
df = pd.DataFrame(np.random.randn(6,4),index=dates,columns=['_c1','_c2','_c3','_c4'])
print(df)

运行成功截图
运行成功截图

Pandas常用方法

pd.dateRange()3

该方法用于生成一个时间序列,主要参数如下:
start:开始时间 end:结束时间

periods:固定时期,取值为整数或None

freq:日期偏移量,取值为string或DateOffset,默认为’D’,'nD’表示n天。y(Y)、m、W、D、H、M、S均可作为参数,选择大单位为参数时以该单位最后一天输出

normalize:若参数为True表示将start、end参数值正则化为年月日时分秒,例如:‘2020-08-05 14:38:35’

name:生成时间索引对象的名称,取值为string或None

closed:可以理解成在closed=None情况下返回的结果中,若closed=‘left’表示[start, end),closed='right’表示(start,end]

使用时,start、end、periods至少使用两个。

DataFrame操作4

以下df表示DataFrame对象、s表示Series对象

# 输出指定列和索引
print(df_name['column_name'])
print(df_name.column_name)
# 输出列名和类型
print(df_name.dtypes)
# 输出行序号和类型
print(df_name.index)
# 输出列名和类型
print(df_name.columns)
# 输出每一个值(不如直接输出df)
print(df_name.values)
# 输出df的数字总结
print(df_name.describe())
# 输出df的转置矩阵
print(df_name.T)
# 按某列排序后输出
print(df_name.sort_values(by='column_name'))
# 输出切片选择
print(df_name[n:m])
print(df_name[index_name1,index_name2])
print(df_name.loc[index_name,['column_name1','column_name2']])
print(df_name.loc['column_name1':'column_name2','index_name1':'index_name2'])
print(df_name.loc[['column_name1','column_name3'],['index_name1','index_name4']])
# 根据条件筛选
print(df_name[df_name.column_name <options>])
print(df_name[df_name['column_name'] <options>])
# 更改数据
df_name['column_name','index_name']= <new_value>
# 添加列(添加行的话需要两次转置)
s=pd.Series([1,2,3,4,np.nan,6])
df_name['column_name_new']=s.tolist()
# 输出无空值结果
# axis 0:行操作; 1:列操作
# how any:只要存在空值就删; all:全部为空才删
print(df_name.dropna(axis=0/1,how='any'/'all')
# 输出处理空值后的结果
print(df_name.fillna(value))
# 判断DataFrame中是否有空值
print(np.any(df_name.isnull()))
# 读取文件(可操作性多种格式数据文件,具体详情见本节参考)
df_name=pd.read_csv('location')
df_name.to_csv('location')
# df合并
# axis=0:纵向排列DataFrames;axis=1:横向排列DataFrames
# ignore_index重新设定索引index
# join outer:取索引并集连接,无数据位置np.nan;inner取索引交集连接
# join_axes:按照某个DataFrame为主进行连接,包含该DataFrame的全部索引,其他DataFrames对该索引进行匹配(参考SQL的LEFT JOIN)
df_name_new=pd.concat([df_name1,df_name_2,df_name3],axis=0/1,ignore_index=True/False)
df_name_new=pd.concat([df_name1,df_name2],axis=1,join='outer'/'inner')
df_name_new=pd.concat([df_name1,df_name2],axis=1,join_axes=[df_name1.index/df_name2.index])
df_name1.append(df_name2/s_name1)
# merge合并(索引和值都相同才合并)
# on 用于merge的列名
# how 连接方式,参考SQL 可以搭配indicator参数,True显示该行连接方式
# 还有df_name_index参数,该参数作用非常类似于join参数,不做赘述
df_name_new=pd.merge(df_name1,df_name2,on='column_name')
df_name_new=pd.merge(df_name1,df_name2,on=['column_name1','column_name2'],how='inner'/'outer'/'left'/'right')

参考


  1. https://www.runoob.com/w3cnote/python-pip-install-usage.html ↩︎

  2. https://www.jianshu.com/p/218baa41bab9 ↩︎

  3. https://blog.csdn.net/kancy110/article/details/77131539 ↩︎

  4. https://pandas.pydata.org/pandas-docs/stable/user_guide/io.html ↩︎

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值