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
写的有点多,以后有时间再精简,好事一个核心框架的形式!

### 关于 Python 金融数据分析与挖掘实战第7章小结的内容总结 虽然当前未提供具体书籍中的第七章小结内容,但从相关资料可以推测该章节可能涉及的主题以及其核心要点。以下是基于已有参考资料和专业知识对该部分内容的合理推断: #### 数据分析与挖掘的基础回顾 在《Python数据分析与挖掘实战》中提到,数据挖掘的基本原理涵盖了多种算法和技术的应用[^1]。这些技术通常包括但不限于分类、聚类、回归分析等方法。对于金融领域而言,这类技术尤为重要。 #### 财务时间序列处理 第七章可能会重点讨论财务时间序列数据的特点及其预处理方式。这一步骤通常是任何金融数据分析项目的起点。例如,在实际操作中,清洗缺失值、平滑噪声并标准化数据都是必不可少的操作。 #### 统计模型构建 接着,本章还可能探讨如何利用统计学建立预测模型来解释金融市场行为模式。此过程往往依赖强大的库支持,比如 `pandas` 和 `numpy` 进行高效计算[^2]: ```python import pandas as pd data = pd.read_csv('financial_data.csv') # 假设这是我们的输入文件路径 print(data.describe()) # 查看基本统计数据特征 ``` 上述代码片段展示了读取CSV格式的历史股价记录,并打印描述性统计量的一个简单例子。 #### 可视化展示成果 最后不可忽略的是结果呈现环节——通过图表直观表达发现规律的能力至关重要。正如之前所见,matplotlib 是实现这一目标的理想工具之一: ```python plt.figure(figsize=(8,6)) plt.plot(data['Date'], data['Close']) # 使用收盘价作为Y轴变量绘图 plt.title('Stock Price Movement') plt.xlabel('Time Period') plt.ylabel('Closing Prices') plt.grid(True) plt.show() ``` 以上脚本能够生成一条反映特定股票一段时间内价格波动趋势线形图。 综上所述,《Python金融数据分析与挖掘实战》第七章的小结应该围绕着从原始财经资讯提取有用信息这条主线展开论述;同时强调运用恰当的技术手段解决现实世界里的挑战性难题的重要性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值