特征工程与数据分析
文章平均质量分 71
以pandas与numpy为主,对算法项目中前期数据处理用到的数据分析相关的内容进行学习记录。
旺仔的算法coding笔记
从自己能做到的开始,一件件来,缓慢而坚定地前进,尽力而为,自己也终将有成为大佬而从容自在的时候
展开
-
hive/spark写入保存出现小文件过多的解决
数据倾斜与小文件问题。在pyspark 中直接以 spark.sql(insert into tableNew ..partition(...).select ...from tableOld)的方式写入数据时,默认未开启动态分区会报错。开启动态分区后容易造成小文件过多从而磁盘报警。原创 2023-02-02 14:50:58 · 2486 阅读 · 0 评论 -
pyspark将DataFrame写入tfrecord 和tf中tfrecord的解析
做特征工程时,利用pyspark 将数据处理后保存为tfrecord以供后续的模型训练。本文给一个保存为tfrecord 和对tfrecord进行解析的案例。原创 2023-02-02 13:05:41 · 1365 阅读 · 0 评论 -
pyspark 保留小数位数-笔记
pyspark中对于数值类型的值进行小数位数的保存可以通过两种方式处理,一个是select中结合functions里的bround,另一个是selectExpr中的结合round。 pyspark.sql中的functions.bround进行处理。原创 2023-02-01 12:00:26 · 1315 阅读 · 0 评论 -
DataFrame中某列值的替换map(dict)
pandas 的dataframe 中,有时需要将某列的值替换为另一个值,pandas中可以直接利用map()里传入字典kv对的方式实现替换如下: 需要将相应的数值编码替换为实际的类别含义 。 选择对应的列,调用map传入字典kv 对结果:原创 2022-06-01 18:07:12 · 5163 阅读 · 0 评论 -
pandas中的字符串解析
pandas中查看各列数据类型的函数为 df.dtypes , 注意后面不用加括号。 pandas中各数据类型与python的对应关系表如下: 注意python中的字符串str类型默认是对应object,但是object并不完全具有str的特性,因此如果想要用str的特性,一般最好是是强制转换为str而不是设置为object类型。 (因为object在pandas中通常是不能全部转换为int或者float类型时就默认用object代替)。某列数据 转换为object无法正确调用str.split,得到的为空原创 2022-05-31 21:48:38 · 5280 阅读 · 0 评论 -
pandas中isin()函数与注意点事项
isin()函数可以直接用于选择某些特定值的数据,常用于清洗数据。注意:由于数据列的数据类型如果是int数据类型,isin里面用字符类型或者用int数据类型都能识别,但是如果数据列数据本身是字符类型,isin里面只能用字符类型才为true,而用int类型就会false实例:df=pd.DataFrame()df['E']=['3','3','4','4']print df.E.isin([3,4])print "##分割###"print df.E.isin(['3','4']..原创 2021-11-14 14:08:04 · 3541 阅读 · 0 评论 -
pandas.DataFrame.from_dict直接从字典构建DataFrame
pandas函数中pandas.DataFrame.from_dict 直接从字典构建DataFrame 。参数解析DataFrame from_dict()方法用于将Dict转换为DataFrame对象。 此方法接受以下参数。data: dict or array like object to create DataFrame.data:字典或类似数组的对象来创建DataFrame。 orient: The orientation of the data. The allowed valu.原创 2021-11-13 14:34:45 · 15332 阅读 · 1 评论 -
groupby分组聚合和运算2
本文是对《利用Python进行数据分析》中关于groupby进行分组聚合和运算的一个回顾性总结2。利用groupby进行数据聚合分组级运算和转换透视表交叉表案例原创 2021-06-04 22:28:52 · 2029 阅读 · 1 评论 -
groupby分组聚合和运算
本文是对《利用Python进行数据分析》中关于groupby进行分组聚合和运算的一个回顾性总结,整体而言,在过去的工作中,用到groupby的场景还是蛮多的,尤其是利用它与相关函数的结合能解决f原创 2021-06-04 20:13:24 · 2318 阅读 · 1 评论 -
python绘图可视化
本文是对《利用python进行数据分析》书中关于绘图可视化的一个回顾性总结笔记。matplotlibpandaszid原创 2021-06-04 10:02:38 · 839 阅读 · 1 评论 -
数据规整化-清理转化合并和重塑笔记
本文是对《利用python 进行数据分析》中关于“数据规整化:清理转化合并和重塑”的回顾性总结笔记,并附上自己的相关代码与注释。原创 2021-06-02 22:13:56 · 181 阅读 · 1 评论 -
pandas读取文件数据、存储详解笔记
本文是对 《利用Python进行数据分析》中关于数据读取的回顾性总计笔记,包含代码注释等。原创 2021-06-02 18:27:56 · 1513 阅读 · 1 评论 -
pandas入门-层次化索引
本文是对pandas的层次化索引的一个回顾性总结。multiIndeunstackstack根据级别原创 2021-06-02 09:41:56 · 930 阅读 · 0 评论 -
pandas入门-缺失数据与重复数据处理
本文是对《python数据分析》的关于pandas入门章节中关于缺失数据与重复数据的一个回顾性总结笔记,包括相关解释与代码案例。原创 2021-06-02 09:26:17 · 181 阅读 · 2 评论 -
pandas入门-汇总和计算描述统计笔记
本文是对《python数据分析》的关于pandas入门章节中汇总和计算描述统计的一个回顾性总结笔记,包括相关解释与代码案例。目录求均值df.mean() 求各列最大值的索引值主要描述和汇总统计函数相关系数与协方差非重复值(唯一值)的求取值个数统计包含指定的值的情况(成员资格)求均值df.mean() df.mean 注意数据中缺失与否的处理。skipna=False。 这样遇到缺失值项时便会计算为NaN,例子:df=DataFra...原创 2021-06-02 08:22:10 · 311 阅读 · 1 评论 -
pandas入门-基本功能
本文是对pandas基本功能的一个回顾性总结记录,本文将围绕下属目录展开。索引对象选取和过滤数据算术yun'su原创 2021-06-01 22:48:31 · 389 阅读 · 1 评论 -
Pandas入门-数据结构Series和DataFrame
本文是对《利用Python进行数据分析》的pandas内容的一个回顾性总结,将围绕下面目录进行展开。原创 2021-06-01 19:45:40 · 523 阅读 · 0 评论 -
Numpy基础:数组和矢量计算-笔记与代码
本文是对《利用python进行数据分析》第四章,“Numpy基础:数组和矢量计算”的一个回顾性阅读笔记,对于代码已经加上自己的部分注释。Numpy这章主要是将数据的整理和清理、子集构造和过滤、转换等快速的矢量化数组运算。 Numpy的大多数功能都在Pandas中已覆盖,且pandas比numpy应用更方便,所以重点是pandas而非numpy.ndarray:一种多维数组对象 定义: ndarray是一个通用的同构数据多维容器,其中的所有元素必须是相同类型,也成为数...原创 2021-05-29 09:20:42 · 408 阅读 · 1 评论 -
ipython一种交互式计算与开发环境
本文是对《利用Python进行数据分析》第三章, "ipython一种交互式计算与开发环境》的阅读记录。注: 这章偏环境讲解%run命令 在ipython环境(jupyterNotebook内嵌有它)中,所有文件都可以通过%run命令当做python程序来运行。如 %run ./test.py执行linux 命令 在linux命令前加英文状态下的 !,能在jupyter中运行linux命令。 如 !cat ./test.py 实现查看文件中的代码 ,有时又称为jupyter中...原创 2021-05-29 09:04:08 · 118 阅读 · 0 评论 -
pandas中数据替换和部分替换df.replace(to_replace, value)
全部替换df.replace(to_replace, value) 前面是需要替换的值,后面是替换后的值。如 df.replace('12589‘,’0‘)这样Python就会搜索整个DataFrame并将文档中所有的12589替换成了0(要注意这样的操作并没有改变文档的源数据,要改变源数据需要使用参数inplace = True,或者改为赋值的方式),df.replace('12589','0',inplace=True)某一列替换:df['colum1'].replace('12589',.原创 2021-03-28 23:41:52 · 10986 阅读 · 0 评论 -
pd.read_csv加载数据缺失值处理na_values与数据为空的填充。
指定缺失值的填充值利用pd.read_csv读取文件加载时,默认会将文件中缺失的数据自动填充为NaN,如果想指定缺失数据的填充值,则可以利用里面的na_values参数。import pandas as pddata=pd.read_csv("./selectRefer10PerClass0317.txt",sep='\t')data.head()此时对于对于缺失数据的填充值为Nan指定以某个值去填充缺失的数据,如字符串'-1'import pandas as pddata=p.原创 2021-03-28 22:12:26 · 8515 阅读 · 4 评论 -
pandas.cut分割到对应桶和解析有Categoricals类型数据,
将一组数据按指定的大小来划分成离散的区间类别,可以通过用pandas.cut轻松实现,如将连续型的年龄数值划分成婴儿、青年等不同年龄段的区间。Categoricals 是 pandas 的一种数据类型,通常是由固定的且有限数量(即可以看成类别数据)的值组成的。比如:人年龄段、性别、社会阶层、血型、国籍、观察时段、赞美程度等都可以转换成。本文介绍pandas.cut 的用法和补充categoricals数据类型的含义。pandas.cut语法pandas.cut(x, bins, right=.原创 2021-03-14 21:50:54 · 1842 阅读 · 0 评论 -
Dataframe和ndarray相互转换
读取文件数据时通常得到的是dataframe格式的,如通过pd.read_csv。有时需要将dataframe格式的数据转换成ndarray的数组形式。ndarray:NumPy中的ndarray是一个多维数组对象,里面的数组多是同质的。Dataframe :pandas中处理数据的二维数组表结构。优势在于可以方便地处理不同类型的列。ndarray转Dataframe :直接用pd.Dataframe,如dataDf=pd.DataFrame(np.arange(12).re...原创 2021-03-14 16:10:41 · 27602 阅读 · 2 评论 -
numpy.logspace 和linspace
np.logspace 生成等比数列base = np.logspace(-1, -5, num=4) # np.logspace 创建等比数列,未指定base的值是默认为基数为10。此为创建起始值为10^-1,最后值为10^-5,总共序列为4个的等比数列candidate = np.sort(np.concatenate((base, base*3)))print(candidate)输出:[ 1.00000000e-05 3.00000000e-05 2.15443469e原创 2021-02-28 17:43:25 · 484 阅读 · 0 评论 -
jupyter中关于pandas的dataframe行列显示不全与复原
在jupyternote book中,当dataframe数据的列数或行数很多时,默认为了减少显示的面积会只能显示其中部分列或行的数据。本文记录如何将数据显示完全和如何复原默认操作。问题: 列或行显示不全如:列显示不全解决方式:pd.set_option('display.max_columns', None)#显示所有列pd.set_option('display.max_columns', None) #原来中间会有部分列的显示被省略data.describe().原创 2021-02-28 17:25:02 · 4822 阅读 · 0 评论 -
left join on 筛选与where筛选的比较
join on后面也能进行条件筛选,where后面也能加条件进行筛选,但两者的结果是不一样的。下面通过实际数据案例来说明问题。数据准备:建表与写入数据A 表hive >create table tempTableAzw(id int,name string ,grade int ,dept int ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|';hive >load data local inpath '/data0/VR.原创 2021-01-16 23:07:03 · 2235 阅读 · 0 评论 -
Hive 边做边记录 字符串处理函数与解析
近期校验数据,深感自己还有太多需要好好学习的地方,尤其是mentor师父写的hql和自己写的一对比,效率提升太多了。 将自己最近遇到的和看到相关的,先记录整理下。查看表和字段信息查看表的信息两种方式showhive -e " show create tableName ;"deschive -e "desc tableName;"两个都会显示相应字段、字段的类型和对应的注释;查看当前用户有的表show tableshive 字符串处理cast 类型转换可以将属性的值的类原创 2020-12-03 01:41:44 · 377 阅读 · 0 评论 -
dataframe根据列特征的条件给新列特征赋值
方式一: 直接用比较 df['B']=df[['B','C']].max(axis=1)方式2 : dataframe.apply(自定义函数)df['label']=df.apply(lambda x: label_get(x.time,x.broad),axis=1)### 代码测试样例dates = pd.date_range('20130101', periods=6)df = pd.DataFrame(np.arange(24).reshape((6,...原创 2020-11-03 16:34:39 · 3151 阅读 · 1 评论 -
mac下python matplotlib中文乱码解决方案,简单快捷
直接在调用的时候字体赋值即可。在代码中加上如下代码即可用。import numpy as npimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Arial Unicode MS']参考https://blog.csdn.net/qq_32590631/article/details/80509741吐槽:知乎上的这个答案,完全没用: MacOS下解决Matplotlib中文乱码问题...原创 2020-09-21 19:52:53 · 1317 阅读 · 1 评论 -
工作所需的pandas基本功--pandas边做边学-小结
特征对于算法模型好比做饭的米,是基石。如何选取好的米,pandas就是你在挑选米的品质时的一个强大工具。本文将主要从pandas的工具安装 、基本概念、读取数据、选择性查看数据Series与DataFrame、查看统计信息、筛选数据、groupby操作、value_counts统计、其他工作中已需要用过的记录(如matplot进行画图展示、将数据写入到Excel中)等来展开。pandas的安装读取数据1 pandas的安装pipinstallpandas-ihttps://py...原创 2020-09-20 23:09:28 · 663 阅读 · 0 评论 -
用pandas读取一个文件或某个文件夹下所有文件
读取一个文件: 直接用文件路径。如果是读取某个文件夹下的所有文件,注意用os.path,逐个读取文件,把新读取到的Dataframe进行concate操作到总的Dataframe中去。详细请见代码。character_list =['1010011_i_u_prov', '9010081_i_b_location']#这是读取一个文件的,# data=pd.read_csv('../data/10line_of_part-00000',sep='\t',header=None...原创 2020-08-22 23:52:15 · 14506 阅读 · 0 评论