Python 数据分析常用的库-pandas

Pandas

(numpy能够帮助我们处理数值,但是pandas除了处理数值外还能够处理其他类型的数据)

常用数据类型一:Series(带标签数组)

  1. Series创建
	# 传入大写字母创建一个Series数据
	# 列表创建Series
	t = pd.Series(np.arange(10), index=list(string.ascii_uppercase[:10]))
	# 字典创建Series
	a = {string.ascii_uppercase[i]:i for i in range(10)}
	t = pd.Series(a)
	# 注意索引index 和 values
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

2.Series切片和索引

# 以2为步长,起始位置为2,终止位置为10
t = t[2:10:2]
# 取2, 3, 6行
t = t[[2, 3, 6]]
# 布尔索引取行
t = t[t>4]
# 取index对应值
t = t["F"]
# 取index值行
t = t[["A", "F", "G"]]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

3.外部数据读取

# 读取的是DateFrame类型
pd = pd.read_csv(filename)
print(pd.index)
print(pd.values)
  • 1
  • 2
  • 3
  • 4

常用数据类型二:DataFrame

1:DataFrame创建

# DataFrame对象既有行索引又有列索引
# 行索引:表明不同行,横向索引,index,0轴,axis=0
# 列索引:表明不同列,纵向索引,columns,1轴,axis=1
t = pd.DataFrame(np.arange(12).reshape((3,4)))
t = pd.DataFrame(np.arange(12).reshape((3,4)), 
				 index=list(string.ascii_upperpase[:3]),
				 columns=list(string.ascii_upperpase[-4:]))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

2: DataFrame属性查询

  • t.shape :行列
  • t.dtypes :列数据类型
  • t.ndim :数据维度
  • t.index : 行索引
  • t.columns : 列索引
  • t.values :对象值,二维ndarray数组
  • 整体情况查询:t.head(3)/t.tail(3)
  • t.info() : 相关信息概览:行数、列数、列索引、列非空值个数、行类型、列类型、内存占用
  • t.describe() : 快速综合统计结果:计数、均值、标准差、最大值、四分位数、最小值

3:DataFrame常用方法

  • t.sort_values(by=“count_AnimalName”,ascending=False)
    出现次数最高的几个名字/排序操作

  • 取行列操作:t[:100][“count_AnimalName”]

  • loc通过标签索引数据/iloc通过位置索引数据

# Aindex行 Wcolums列的值
t.loc["A", "W"]
# 取得后的类型为Series类型
t.loc["A", ["W", "Z"]]

t.loc[["A", "C"], ["W", "Z"]]
t.loc["A":, ["W", "Z"]]
t.loc["A":"C", ["W", "Z"]]
t.iloc[1:3, [2,3]]
t.iloc[1:3, 1:3]
# 更改数据后面=值 同理
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 布尔索引
t[t["count_AnimalName"]>800]
t[(t["Row_labels"].str.len()>4) & t["count_AnimalName"]>700]
  • 1
  • 2
  • 缺失数据处理
    处理方式一:删除Nan所在的行列
    dropna(axis=0, how=‘any’, inplace=False)
    处理方式二:填充数据:
    t.fillna(t.mean())
    t.fillna(t.median())
    t.fillna(0)

  • 数据合并join:默认将行索引相同的数据合并到一起
    t1.join(t2)

  • 分组和聚合
    df.groupby(by=“columns_name”)

  • Pandas时间序列
    pd.date_range(start=None, end=None, freq=‘D’)
    生成start和end范围内以频率freq的一组时间索引
    pd.date_range(start=None, periods=10, freq=‘D’)
    生成start开始的频率为freq的periods个时间索引

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值