金融统计分析与挖掘实战3.3.1-3.3.3
# 3.3 数据框
# 特征:多个序列按照相同的索引组成的二维表
# 3.3.1 数据框的创建
import pandas as pd
import numpy as np # 先导入两个最常用的数据处理分析包
data = {"a" : [2,2,np.nan,5,6],"b" : ["kl","kl","kl",np.nan,"kl"],"c" : [4,6,5,np.nan,6],"d" : [7,9,np.nan,9,8]} #生成一个字典
df = pd.DataFrame(data)
print(df) #格式非常符合我们储存变量的形式
a b c d
0 2.0 kl 4.0 7.0
1 2.0 kl 6.0 9.0
2 NaN kl 5.0 NaN
3 5.0 NaN NaN 9.0
4 6.0 kl 6.0 8.0
# 数据框属性
# 包括列变量的名称、索引和值
print("数据框中列的名称 columns = ") #对输出结果进行说明
print(df.columns) # column表示列变量名
print("-" * 40) # 用分隔线分隔各部分结果
print("数据框中索引 index = ")
print(df.index) #index 表示索引
print("-" * 40)
print("数据框中的值 = ")
print(df.values) # value表示取值
数据框中列的名称 columns =
Index(['a', 'b', 'c', 'd'], dtype='object')
----------------------------------------
数据框中索引 index =
RangeIndex(start=0, stop=5, step=1)
----------------------------------------
数据框中的值 =
[[2.0 'kl' 4.0 7.0][2.0 'kl' 6.0 9.0][nan 'kl' 5.0 nan][5.0 nan nan 9.0][6.0 'kl' 6.0 8.0]]
# 3.3.3 数据框方法
# 1.去掉空值 dropna()
df1 = df.dropna()
print(df) # 原始数据框不发生变化
print("*" * 40)
print(df1) # 去掉空值后的结果,注意这里去掉的是包含空值所在行的所有元素,相当于删除掉有空值的所有样本
a b c d
0 2.0 kl 4.0 7.0
1 2.0 kl 6.0 9.0
2 NaN kl 5.0 NaN
3 5.0 NaN NaN 9.0
4 6.0 kl 6.0 8.0
****************************************a b c d
0 2.0 kl 4.0 7.0
1 2.0 kl 6.0 9.0
4 6.0 kl 6.0 8.0
# 2.填充空值 fillna()
df2 = df.fillna(0) # 所有空值元素用0填充,括号里面的表示要填充的元素
print(df2)
a b c d
0 2.0 kl 4.0 7.0
1 2.0 kl 6.0 9.0
2 0.0 kl 5.0 0.0
3 5.0 0 0.0 9.0
4 6.0 kl 6.0 8.0
df3 = df.fillna("kl")
print(df3)
a b c d
0 2.0 kl 4.0 7.0
1 2.0 kl 6.0 9.0
2 kl kl 5.0 kl
3 5.0 kl kl 9.0
4 6.0 kl 6.0 8.0
# 每一列空值填充的元素不一样
df4 = df.fillna({"a" : 0,"b" : "kl","c" : 0, "d": "lk"}) # 不同的列用列变量名表示,然后用字典的形式将每列空值要填充的元素补充到值上
print(df4)
a b c d
0 2.0 kl 4.0 7.0
1 2.0 kl 6.0 9.0
2 0.0 kl 5.0 lk
3 5.0 kl 0.0 9.0
4 6.0 kl 6.0 8.0
# 一部分列需要填充
df5 = df.fillna({"a" : 8888, "b" : "kkkk"}) #按照上述形式将需要填充的列写入即可,没写的列不填充空值
print(df5)
a b c d
0 2.0 kl 4.0 7.0
1 2.0 kl 6.0 9.0
2 8888.0 kl 5.0 NaN
3 5.0 kkkk NaN 9.0
4 6.0 kl 6.0 8.0
# 3 .排序 sort_values()
data1 = {"a":[5,3,4,1,6],"b":["d","c","a","e","q"],"c":[4,6,5,5,6]}
Df = pd.DataFrame(data1)
print(Df)
a b c
0 5 d 4
1 3 c 6
2 4 a 5
3 1 e 5
4 6 q 6
Df1 = Df.sort_values("a",ascending = False) # 括号内第一个参数,填排序的变量名,第二个参数默认为升序,如果降序则需设置
print(Df1)
a b c
4 6 q 6
0 5 d 4
2 4 a 5
1 3 c 6
3 1 e 5
Df2 = Df.sort_values("b",ascending = False) #字母也可以按照顺序进行排序
print(Df2)
a b c
4 6 q 6
3 1 e 5
0 5 d 4
1 3 c 6
2 4 a 5
# 4.对索引进行排序 sort_index()
Df3 = Df1.sort_index(ascending = False) #索引是唯一的,不需要指定,括号里参数直接写排序模式即可
print(Df3)
a b c
4 6 q 6
3 1 e 5
2 4 a 5
1 3 c 6
0 5 d 4
# 5. 显示前几行 用head()
H4 = Df3.head(4) # 括号里表示要取的行数,取前4行
print(H4)
a b c
4 6 q 6
3 1 e 5
2 4 a 5
1 3 c 6
# 6. 删除数据框中指定的列 用drop()
H41 = H4.drop("b",axis = 1) #必须得指定轴为1
print(H41)
a c
4 6 6
3 1 5
2 4 5
1 3 6
# 水平连接两个数据框用join()
Df4 = pd.DataFrame({"e":[1,3,5,7,9]})
Df5 = df4.join(Df4)
print(Df5)
a b c d e
0 2.0 kl 4.0 7.0 1
1 2.0 kl 6.0 9.0 3
2 0.0 kl 5.0 lk 5
3 5.0 kl 0.0 9.0 7
4 6.0 kl 6.0 8.0 9
# 8.数据库转换为numpy数组 as_matrix()
list1 = ["a","b","c","d","e","f"]
list2 = [1,2,3,4,5,6]
list3 = [1.4,3.5,2,6,7,8]
list4 = [4,5,6,7,8,9]
list5 = ["t",5,6,7,"k",9.6]
D = {"m1":list1,"m2":list2,"m3":list3,"m4":list4,"m5":list5} #定义一个字典,将键和值匹配上
print(D)
{'m1': ['a', 'b', 'c', 'd', 'e', 'f'], 'm2': [1, 2, 3, 4, 5, 6], 'm3': [1.4, 3.5, 2, 6, 7, 8], 'm4': [4, 5, 6, 7, 8, 9], 'm5': ['t', 5, 6, 7, 'k', 9.6]}
D = pd.DataFrame(D)
print(D)
m1 m2 m3 m4 m5
0 a 1 1.4 4 t
1 b 2 3.5 5 5
2 c 3 2.0 6 6
3 d 4 6.0 7 7
4 e 5 7.0 8 k
5 f 6 8.0 9 9.6
D1 = D.as_matrix()
print(D1) # 新版本pandas不兼容此操作
---------------------------------------------------------------------------AttributeError Traceback (most recent call last)<ipython-input-32-b12b637b5581> in <module>
----> 1 D1 = D.as_matrix()2 print(D1) # 新版本pandas不兼容此操作C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\generic.py in __getattr__(self, name)5463 if self._info_axis._can_hold_identifiers_and_holds_name(name):5464 return self[name]
-> 5465 return object.__getattribute__(self, name)5466 5467 def __setattr__(self, name: str, value) -> None:AttributeError: 'DataFrame' object has no attribute 'as_matrix'
D1 = D.iloc[:,:].values # D.as_matrix()新版本中采用iloc[:,:].values 或者 D.values也可以
print(D1)
[['a' 1 1.4 4 't']['b' 2 3.5 5 5]['c' 3 2.0 6 6]['d' 4 6.0 7 7]['e' 5 7.0 8 'k']['f' 6 8.0 9 9.6]]
G = {"m1":list2,"m2":list3,"m3":list4}
G = pd.DataFrame(G)
print(G)
m1 m2 m3
0 1 1.4 4
1 2 3.5 5
2 3 2.0 6
3 4 6.0 7
4 5 7.0 8
5 6 8.0 9
G1 = G.iloc[:,:].values
print(G1)
[[1. 1.4 4. ][2. 3.5 5. ][3. 2. 6. ][4. 6. 7. ][5. 7. 8. ][6. 8. 9. ]]
金融统计分析与挖掘实战3.3.1-3.3.3相关推荐
- 金融统计分析与挖掘实战6.1-6.3
# 6.1 关联规则 import numpy as np import pandas as pd import os os.chdir("C:\\Users\\Administrator\ ...
- 金融统计分析与挖掘实战5.1-5.2
# 第5章 机器学习包 # 5.2.1 缺失值处理 import numpy as np import pandas as pd import os os.chdir("C:\\Users\ ...
- 金融统计分析与挖掘实战3.1-3.2
# 第三章 数据处理包 pandas # 3.2序列 #3.2.1 序列的创建与访问 import pandas as pd import numpy as np # 数据分析前先导入两个最常见的包 ...
- 金融统计分析与挖掘实战7.6-7.7
7.6 沪深300指数走势预测 import os os.chdir("C:\\Users\\Administrator\\Desktop") #设置路径 import panda ...
- 金融统计分析与挖掘实战8.3-8.4
第八章 上市公司综合评价 # 设置工作路径和导入基本数据分析包 import os os.chdir("C:\\Users\\Administrator\\Desktop") #设 ...
- 金融统计分析与挖掘实战7.3-7.5
# 7.3 上市公式净利润增长率计算 import os os.chdir("C:\\Users\\Administrator\\Desktop") import pandas a ...
- 金融数据分析与挖掘实战 4.2 Matplotlib(二)
Matplotlib常用图形绘制 Matplotlib绘制的常用图形包括散点图.线性图.柱状图.直方图.饼图.箱线图和子图. 1.散点图 散点图又称为散点分布图,是以利用坐标点(散点)的分布形态反映特 ...
- 金融数据分析余挖掘实战1.9-1.10补充
# 1.9.2 有返回值的函数 def sumt(t): #求1一直加到t的和s = 0while t > 0:s = s + tt = t - 1return s s = sumt(30) # ...
- 金融数据分析与挖掘实战练习2.10
# 2.10矩阵及线性代数的运算 # 2.10.1 创建矩阵 import numpy as np mat1 = np.mat("1 2 3 ; 4 5 6 ; 7 8 9") p ...
最新文章
- springboot集成swagger2测试接口
- 在Linux上部署aspnet mvc3
- linux下初次安装mysql使用指南
- Python集合和函数
- python设置时间步长与时间离散格式_python怎么定义时间
- WAMP PHP开发环境
- Objective-C消息转发
- Codepen 每日精选(2018-3-29)
- 七牛云 rs.php 没有,设置了callbackUrl,七牛只是在客户端上打印了json格式的key和hash,居然没有按照设置跳转回来..怎么弄?...
- 交叉编译cross compiling
- Win10/11 自带输入法一键变五笔86/98/郑码/小鹤音形/表形码
- 买了北京亲子年票但没有小孩的朋友,接下来的一年我都给你安排好啦!!...
- Python自动化测试进阶系列——自动发邮件功能
- Android应用网络限制功能实现
- jq 修改元素css伪类样式
- 第8天 鼠标控制与32位模式切换
- 深度学习不得不知的英文名称
- 真香!java设置全局变量
- 不是青蛙就是王子,不是王子就是青蛙
- js html 最简单实现按按钮出现图标