使用pandas,numpy进行数据分析建模的一些常用命令
1、读取文件为pandas格式:
import pandas as pd
import numpy as np
dataset = pd.read_csv("C:/Users/Administrator/Desktop/test.csv",encoding='gbk')
这样就读取了一个csv文件作为dataframe格式的文件,结果如下:

2、查看读取数据的概况和维度使用如下命令:
dataset.head() # 若括号不填写任何信息,默认查看df的前五行,当然也可以填写数字,填写几就查看前几行的数据
dataset.shape # 查看数据的维度信息,即df数据有几行几列
3、获取所需字段:
X = dataset.loc[:,['CLASS_LEVEL','COMBINE_TAG_LEN','TAG_POS','SIMI']]
这里loc默认是[a,b]这种格式,a代表需要获取行的名称,b代表需要获取列的名称,假如a用:表示意味着获取所有的行,列也同理;上述代码代表就是获取
CLASS_LEVEL,COMBINE_TAG_LEN等所在列的所有行的数据;
4、随机抽取数据:
data_0_random = data_0.sample(n=854)
上述代码表示对data_0用sample函数随机抽取了854条数据
5、数据合并:
aa = [data_1,data_0_random]
dataset = pd.concat(aa)
这里也可以用append来代替concat:
data_1_random = data_1.sample(n=86)
data_new = data_0.append(data_1_random)
new_train_data_X = pd.concat([X3,class_id1_df,class_id2_df,class_id3_df],axis =1)
上述代码表示对data_1和data_0_random进行合并,也就是相当于在data_1的最后一行下将data_0_random都复制过来
第6行代表将list =[X3,class_id1_df,class_id2_df,class_id3_df]这些列进行合并,这里可以看到axis=1就是代表列的意思;
6、将list转换为numpy中的array格式:
import numpy as np
class_names1 = np.array(['',''])
7、删除df中一列的内容:
X = dataset.drop('Class', axis=1)
代表将dataset这个文件中的class列删除,注意axis=1,代表删除列;
8、数据量太多,但是还是想要显示所有行进行查看:
import pandas as pd
import numpy as np
np.set_printoptions(threshold=np.inf)
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)
在代码最前端输入上述三行代码,即可在进行数据分析时候显示所有的读取数据
9、对字符数据进行one-hot编码:
import pandas as pd
import numpy as np
dataset = pd.read_csv(open("C:/Users/Administrator/Desktop/test.csv",'r',encoding='gbk'))
X = dataset.loc[:,['CLASS_ID1','TAG_POS1','TAG_SIMI1','CLASS_ID2','TAG_POS2','TAG_SIMI2','CLASS_ID3','TAG_POS3','TAG_SIMI3']]
class_id1_df = pd.DataFrame()
class_id1_df = pd.get_dummies(X['CLASS_ID1'],prefix = 'CLASS_ID1')
这里选取class_id1进行one-hot编码,即将字符变为[0,1,1,10]类似这种形式的数字编码,从而方便后期进行建模;
核心编码就两行,第5行代表初始化一个编码结果的空表,第6行代表对class_id1进行one-hot编码,其中prefix代表需要编码的那一列;
10、数据映射:
from pandas import Series
data = [[0,1,0,0,0,0],[0,0,1,0,0,0]]
sl = Series(data,index = ['A01','A02'])
sl
输出:
A01 [0, 1, 0, 0, 0, 0]
A02 [0, 0, 1, 0, 0, 0]
dtype: object
11、选取一列等于某个值的数据,类似SQL中的select。。。where语句
data_0 = dataset.loc[dataset['MARK_RESULT']==0] # 选取mark=1的值
data_1 = dataset.loc[dataset['MARK_RESULT']==1] # 选取mark=1的值
12、查看相关系数矩阵:
dataset_corr = data_new.corr()
dataset_corr['MARK_RESULT'].sort_values(ascending = False)
在进行数据分析的时候往往要查看所有的自变量中哪两个属性的相关系数较大,从而选取一些典型的特征属性来建模,效果才会更好,可以用corr()方法来进行相关系数计算,并且还
可以对某个属性按照相关系数大小进行排列,从而找到与某个属性最相关的其他属性;
13、获取df某些列的数据,并且按照array格式进行查看:
data = dataset.loc[:, ['CLASS_LEVEL', 'COMBINE_TAG_LEN', 'TAG_POS','TAG_ORDER_POS', 'SIMI']].values
data
输出:
array([[3. , 2. , 0.95, 3. , 0.65],
[5. , 5. , 0.95, 3. , 0.65],
[2. , 2. , 0.95, 1. , 0.95],
...,
[4. , 2. , 0.95, 1. , 0.55],
[4. , 3. , 0.95, 3. , 0.75],
[3. , 2. , 0.95, 1. , 0.95]])
只需要用values方法即可;
14、df中新添加一列,并且该列为其他两列之和:
dataset['plus']=dataset['A']+dataset['B']
dataset
在dataset中新增加一列plus,并且该列为A列和B列的和;
使用pandas,numpy进行数据分析建模的一些常用命令的更多相关文章
- python及pandas,numpy等知识点技巧点学习笔记
python和java,.net,php web平台交互最好使用web通信方式,不要使用Jypython,IronPython,这样的好处是能够保持程序模块化,解耦性好 python允许使用'''.. ...
- pandas numpy处理缺失值,none与nan比较
原文链接:https://junjiecai.github.io/posts/2016/Oct/20/none_vs_nan/ 建议从这里下载这篇文章对应的.ipynb文件和相关资源.这样你就能在Ju ...
- 数据分析基础之pandas & numpy
一.jupyter的常用快捷键 - 插入cell: a, b a是after从后插入 a是before 从前插入 - 删除cell: dd, x 都可以 - 修改cell的模式:m, y - t ...
- pandas模块(数据分析)------Series
pandas是一个强大的Python数据分析的工具包. pandas是基于NumPy构建的. pandas的主要功能: 具备对其功能的数据结构DataFrame.Series 集成时间序列功能 提供丰 ...
- 机器学习 三剑客 之 pandas + numpy
机器学习 什么是机器学习? 机器学习是从数据中自动分析获得规律(模型),并利用规律对未知数据进行预测 机器学习存在的目的和价值领域? 领域: 医疗.航空.教育.物流.电商 等... 目的: 让机器学习 ...
- python pandas/numpy
import pandas as pdpd.merge(dataframe1,dataframe2,on='common_field',how='outer') replace NaN datafra ...
- 【原创】大叔经验分享(11)python引入模块报错ImportError: No module named pandas numpy
python应用通常需要一些库,比如numpy.pandas等,安装也很简单,直接通过pip # pip install numpyRequirement already satisfied: num ...
- Python pandas & numpy 笔记
记性不好,多记录些常用的东西,真·持续更新中::先列出一些常用的网址: 参考了的 莫烦python pandas DOC numpy DOC matplotlib 常用 习惯上我们如此导入: impo ...
- Pandas 高级应用 数据分析
深入pandas 数据处理 三个阶段 数据准备 数据转化 数据聚合 数据准备 加载 组装 合并 - pandas.merge() 拼接 - pandas.concat() 组合 - pandas.Da ...
随机推荐
- Ubuntu---不能打开 exfat 文件系统格式的 U盘解决方法
出现问题:今天把 U 盘插入 Ubuntu 系统的电脑中,打开 U 盘发现弹出 系统格式不支持 的提醒,无法进入 U 盘进行操作. 环境: Ubuntu18.04 TSL; 格式化为 exfat 文件 ...
- zip和rar文件的contentType
zip.rar.msi等文件使用Chrome提交的ContentType都为null,IE可以正确获取
- ubuntu19.10安装cuda-10.1
ubuntu19.10安装cuda-10.1 1.安装N卡驱动: 打开ubuntu的软件和更新,设置N卡驱动 2.查看ubuntu显卡驱动 nvidia-smi 显示: Sun Feb 23 06:4 ...
- log4j2和logback动态修改日志级别工具类
工作中,在排查线上问题时,有以下场景在不重新部署或重启服务的情况下,需要动态调整线上日志级别 1.线上有些日志打印过多干扰有用的日志,需要动态修改线上日志记录器的打印日志级别,调高一些日志级别,打印出 ...
- 个人训练记录(UPD 9.16)
本文章记录一些较难的题,摘自自己的blog中的其他文章.也有些单独成章有点浪费的题也写在里面了. 2019.7.15-2019.7.21 1182F(2900) 题意:求在区间 \([a,b]\) 中 ...
- 实现迭代器(\_\_next\_\_和\_\_iter\_\_)
目录 实现迭代器(__next__和__iter__) 一.简单示例 二.StopIteration异常版 三.模拟range 四.斐波那契数列 实现迭代器(__next__和__iter__) 一. ...
- App 性能测试
app常见性能测试点: https://blog.csdn.net/xiaomaoxiao336368/article/details/83547318
- 如何选字体(font-family)
一.默认字体情况 1.Window下: 宋体(SimSun):Win下大部分游览器的默认字体,宋体在小字号下(如12px.14px)的显示效果还可以接受,但是字号一大就非常糟糕了,所以使用的时候要注意 ...
- Web 自动化
自动化:由机器设备代替人为自动完成指定目标的过程 自动化测试:由程序代替人为去验证程序功能的过程 为什么要进行自动化测试? 解决-回归测试 压力测试 兼容性测试 提高测试效率,保证产品质量 什么阶段开 ...
- Python_监测某一个端口是否被占用
#!/usr/bin/env python# -*- coding:utf-8 -*- import socket, time, threadsocket.setdefaulttimeout(3) # ...