Python数据分析之Pandas(3)——Pandas小结

0. 核心基础:(速记-解释-白话)

  • Series:一维;两个“属性”;操作元素

    ① 一维数组结构(看做表格中的一列)
    ②由 index 和 对应的值 构成 (对应行index的一列)
    ③元素级别的操作 (操作这一列之内的元素)

  • DataFrame :二维;三个“属性”;操作行/列

    ①二维数据结构(看做横向/列变化方向堆叠起来的多个Series)
    ②由 index、列名 和 它们对应的值 组成(列名对应多列Series)
    ③操作级别是行/列(操作多行或者多列)

  • 共同点:向量和广播机制

    将一个Numpy数组的操作扩散到整个Pandas对象。

1. Series

  • 产生方式(列表/字典=输入)

    注意:可以使用默认index也可以自定义

  • 操作方法(选择+函数=输出)

Series的产生:

print('通过数组来生成序列Series')
s_array = np.random.randn(5)
s = pd.Series(s_array, index = ['a','b','c','d','e'])
s

print('通过字典来生成序列Series')
s_dict= {'a':11,'b':1000,'c':123213,'d':-1000}
s = pd.Series(s_dict)
s

Series的操作:

s = pd.Series(np.random.randn(5), index = ['a','b','c','d','e'])
s

# 可以通过index来查看序列Series中的元素
print('查看序列中index为a的元素:',s['a'])
print('查看序列中index为a,c,e的元素:\n',s[['a','c','e']])

# 基于index 可以修改序列s中的元素
print('原序列:\n',s)
s['a'] = 1000000000
print('修改后的序列:\n',s)

s = pd.Series(np.random.randn(5), index = ['a','b','c','d','e'])
print('原序列:\n',s)
# 大多数numpy的函数可以直接应用于 序列 Series
print('序列相加:\n',s+s)
print('序列每个元素求指数:\n',np.exp(s))

s = pd.Series(np.random.randint(1,5,5), index = ['a','b','c','d','e'])
print('查看序列s的index:',s.index)
print('查看序列的值:',s.values)
print('序列s的一阶差分:\n',s.diff())

ss = pd.Series(np.random.randint(1,3,100))
print(ss[:10])
print('查看序列的唯一取值:',ss.unique())

2. DataFrame

  • 产生方式(列表/字典=输入)

  • 操作方法(选择+函数=输出)

DataFrame的产生:

print('由列表来产生数据框')
data = [['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada'],
        [2000, 2001, 2002, 2001, 2002],
        [1.5, 1.7, 3.6, 2.4, 2.9]]
frame = pd.DataFrame(data,index=['state','year','pop']).T
frame

print('由字典来产生数据框')
data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada'],
        'year': [2000, 2001, 2002, 2001, 2002],
        'pop': [1.5, 1.7, 3.6, 2.4, 2.9]}
frame = pd.DataFrame(data)
frame

DataFrame的操作:
相对Series这里的操作会更多更复杂一些,单独分块小结
注意到,直接传入多维数组之后,可以通过参数index添加索引(默认按行),并且使用功转置将一行行的数组转为一列列的形式!
①基本性质:

data = pd.DataFrame(np.random.randint(1,100,(10,4)),columns=['x1','x2','x3','x4'])
print('首先查看数据框的形状',data.shape)
print('查看数据框的头部:')
print(data.head()) 
print('---------------------')
print('查看数据框的尾部:')
print(data.tail())
print('---------------------')
print('查看数据框的索引index')
print(data.index)

print('查看数据框的列名')
print(data.columns)
print('---------------------')
print('查看数据框的值,其格式为数组array')
print(data.values)
print('---------------------')
print('查看数据框的基础描述性统计')
print(data.describe())

# 在原有的数据框中新加入一列
data['新列'] = ['HAHA'] * len(data)
data

# 数据框的转置
data.T

②选择数据

可以参考:
https://zhuanlan.zhihu.com/p/58961194
写的有点多,以后有时间再精简,好事一个核心框架的形式!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值