Day12

Pandas入门

一、创建对象

创建一个Series通过传递值的列表

import numpy as np
import pandas as pd
s = pd.Series([1,3,5,np.nan,8])
#此时打印s为,以列来看
0    1.0
1    3.0
2    5.0
3    NaN
4    8.0
dtype: float64

DataFrame通过传递带有日期时间索引和带标签的列的NumPy数组来创建一个:

dates = pd.date_range("20201026",periods=6)
df = pd.DataFrame(np.random.randn(6,4),index=dates,columns=list("ABCD"))
#打印df为,DataFrame的第一个输入参数为数据源,index为行label,columns为列label

在这里插入图片描述
DataFrame通过传递对象的字典来创建,这些对象可以转换为类似序列的对象。

二、查看数据

1、head(),默认读取为前五行;

df.head()

在这里插入图片描述
2、tail()方法可设置读取行数;

df.tail(2)

在这里插入图片描述
3、显示索引的列,使用index和columns;
在这里插入图片描述
4、describe() 显示数据的快速统计摘要:
在这里插入图片描述
5、转置数据,直接使用.T方法就可;

df.T

在这里插入图片描述
6、按轴排序,使用sort_index()方法,注意其中入参的axis和ascending,axis = 0时按行,反之按列。ascending=True时按顺序,反之按逆序;

df.sort_index(axis=0,ascending=False)

在这里插入图片描述
7、按值排序,使用sort_values()方法,可通过设置参数选哪一列;
在这里插入图片描述

三、选择

1、简单取值
如果想直接取一列,直接使用df.A,df表示一个DataFrame,A表示一个列;
同时也支持跟列表操作类似的切片操作。如df[0:3];
示例:

df.A
df[:3]

在这里插入图片描述
2、通过标签来get,如果想获得某一行的数据,可以通过标签来得到,如

df.loc[dates[0]]#获得某一行值

3、通过标签在多轴上选择:如:

df.loc[:,['A','B']]#获得A,B列带标签的表格

4、显示标签切片,两个端点都包括在内:

df.loc['20201026','20201028',['A','B']]#获得从1026至1028,A、B两列的表格

5、只获得对应列的值,不返回标签:

df.loc["20201026",["A","B"]]

6、获得特定位置的值:

df.loc["20201026","A"]

7、通过iloc[ ]获得值:

df.iloc[3]#获得(3+1)行的值
df.iloc[3:5,0:2]#类似于切片操作
df.iloc[[1,2,4],[0,2]]
df.iloc[1:3,:]
df.iloc[1,1]
df.iat[1,1]

8、给DataFrame设置值:
首先重新生成一个DataFrame

s1 = pd.Series([1,2,3,4,5,6],index=pd.date_range('20130102',periods=6))

在这里插入图片描述

df['F'] = s1#增加F列
df.at[dates[0],"A"] = 0#第1行第A列设置为0
df.iat[0,1] = 0
df[df > 0] = -df #将大于零的数据全部转换成负数

四、加入

left = pd.DataFrame({'key':['foo','bar'],'lval':[1,2]})
right = pd.DataFrame({'key':['foo','bar'],'rval':[4,5]})
pd.merge(left,right,on='key')

在这里插入图片描述

五、绘图

使用绘图需要导入matplotlib API

import matplotlib.pyplot as plt
plt.close('all')
ts = pd.Series(np.random.randn(1000),index = pd.date_range('1/1/2000',periods=1000))
ts = ts.cumsum()
ts.plot()

在这里插入图片描述绘制DataFrame:

df = pd.DataFrame(np.random.randn(1000,4),index = ts.index,columns = list("ABCD"))
df = df.cumsum()
plt.figure()
df.plot()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值