- 博客(37)
- 资源 (1)
- 收藏
- 关注
原创 shell脚本调用spark-sql
#!/bin/sh#set -x##########################author : robin#version : v3.0##########################$1 : start time for business circle#$2 : end time for business circle#$3 : start time of slowly changing dimension for SF orginazation#$4 : spark par
2021-06-12 20:22:17
1428
2
原创 对datafrmae某一列进行分词,并对分词后的所有字符串进行统计
import pandas as pdimport jiebadef cut_word(word): cw = jieba.cut(word) return list(cw)df['cut_word'] = df['word'].apply(cut_word)pd.Series(df['cut_word'].sum()).value_counts()
2020-03-31 21:52:32
6799
原创 pandas将长度不同的list或Series合并成一个dataframe
不同长度的Series和DataFrame合并# s1为一个DataFrame,s2为一个Seriesdef expand_columns(s1, s2): s1.np.array(s1).tolist() data = [(k, ','.join(v)) for k in s2 for v in s1] data = pd.DataFrame(data, columns=[s2.nam...
2020-03-05 22:09:24
8769
2
原创 pandas实现sum()over()、count()over()等窗口函数
pandas利用transform实现窗口函数array = [ ['a', 2, 29], ['a', 1, 18], ['a', 0, 18], ['b', 2, 25], ['b', 4, 12], ['c', 6, 21],]data = pd.DataFrame(array, columns=["name", "class", "s...
2020-02-10 10:05:08
2279
1
原创 pandas读取各种类型的json文本文件
pandas用read_json读取json文件pandas.read_json语法如下pandas.read_json(path_or_buf=None, orient=None, typ='frame', dtype=True, convert_axes=True, convert_dates=True, keep_default_dates=True, numpy=False, pr...
2020-02-08 11:46:23
8142
原创 pandas实现分组去重计数功能
用pd.Series.nunique在pandas中实现分组计数功能grouped = data.groupby(["col1", "col2"])grouped.agg({"col3": "count", "col4": pd.Series.nunique})
2019-07-03 11:34:53
19395
2
原创 spark实现用窗口函数进行去重计数的功能
df.withColumn("new_col_name", size(collect_set($"need_count_col_name").over(Window.partitionBy($"window_col_name"))))//同理在hive中也可以采用这种利用size和collect_set的形式实现用窗口函数进行去重计数的功能...
2019-06-27 15:18:11
2527
1
原创 使用spark对dataframe的某一列调用HTTP请求并返回数据给dataframe
代码package cn.spark.sqlimport org.apache.http.client.methods.HttpGetimport org.apache.http.impl.client.DefaultHttpClientimport org.apache.spark.sql.SparkSessionimport scala.io.Sourceobject Http...
2019-06-23 11:58:40
6008
1
原创 spark修改日志级别
通过SparkSession进行设置val spark = SparkSession .builder() .appName("AWSMMonitorInfo") .enableHiveSupport() .config("hive.exec.dynamic.partition", true) // 支持 Hive 动态分区 .conf...
2019-06-17 10:46:52
3005
原创 Spark的DataFrame中用explode将array数组转换成多行
//service_prod_code字段类型为arrayval df_info = spark.sql( """ select product, service_prod_code from tablename """.stripMargin)//使用explode会将原值中的null值删除掉,就是说,如果原来的arr...
2019-06-05 09:36:57
7503
1
原创 idea中spark的pom.xml配置
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ma...
2019-06-04 11:08:42
3186
原创 spark动态更新hive表的分区数据
使用spark操作hive的时候,当需要对hive的分区表进行动态更新分区内容时,可在SparkSession中进行如下设置SparkSession.builder() .master("yarn") .appName(appName) .enableHiveSupport() .config("hive.exec.dynami...
2019-05-31 17:39:08
2805
2
原创 pandas实现对dataframe抽样
随机抽样import pandas as pd#对dataframe随机抽取2000个样本pd.sample(df, n=2000)分层抽样利用sklean中的函数灵活进行抽样from sklearn.model_selection import train_test_split#y是在X中的某一个属性列X_train, X_test, y_train, y_test = tra...
2019-05-29 15:55:34
5070
原创 pandas实现hive的lag和lead函数
lag该函数的格式如下:lag(字段名,N) over(partition by 分组字段 order by 排序字段 排序方式) lag括号里理由两个参数,第一个是字段名,第二个是数量N,这里的意思是,取分组排序后比该条记录序号小N的对应记录的指定字段的值,如果字段名为ts,N为1,就是取分组排序后上一条记录的ts值。lead该函数的格式如下:lead(字段名,N) over(pa...
2019-04-11 10:37:26
7225
原创 pandas实现分组排序
import pandas as pddf = pd.DataFrame([['A',1,'2019-03-01 00:00:30'], ['A',3,'2019-04-01 00:00:30'], ['A',2,'2019-03-01 00:00:30'], ['B',5,'2019-...
2019-04-10 19:10:29
3002
原创 pandas中利用groupby分组导入数据到excel中
import pandas as pddf = pd.read_table(read_file, header=0, dtype=str, sep='\t')res_file = fileDir + r'\filename.xlsx'writer = pd.ExcelWriter(res_file)groupby_df = df.groupby(['colname'])for i in...
2019-04-02 18:03:12
8633
原创 机器学习实战之利用AdaBoost元算法提高分类性能
-- coding: utf-8 --“”"Created on Thu Feb 14 08:49:07 2019@author: 01376782“”"‘’’利用AdaBoost元算法提高分类性能元算法是对其他算法进行组合的一种方式。其背后的思路就像当做重要决定时,大家可能都会考虑吸取多个专家而不只是一个人的意见。利用元算法处理机器学习问题时就是采用这种思路。基于数据集多重抽样...
2019-03-31 17:05:06
355
原创 使用python实现地理位置查询经纬度
地理编码工具geocoder地理编码工具geocoder,不同厂商的服务整合统一起来地理编码import geocoderg = geocoder.google("1403 Washington Ave, New Orleans, LA 70130")g = geocoder.arcgis(u"北京市海淀区上地十街10号")g.latlng输出为[29.9287839, -90....
2019-03-28 11:37:05
8762
原创 机器学习实战之支持向量机
-- coding: utf-8 --“”&amp;amp;amp;amp;quot;Created on Sat Dec 15 11:17:47 2018@author: Administrator“”&amp;amp;amp;amp;quot;‘’’https://blog.csdn.net/v_JULY_v/article/details/7624837支持向量机优点:范化错误率低,计算开销不大,结果易解释缺点:对参数调节和核函数
2019-02-14 08:48:03
636
原创 机器学习实战之Logistic回归
Logistic回归Logistic回归的一般过程收集数据:采用任意方法收集数据。准备数据:由于需要进行距离计算,因此要求数据类型为数值型。另外,结构化数据格式则最佳。分析数据:采用任意方法对数据进行分析。训练算法:大部分时间将用于训练,训练的目的是为了找到最佳的分类回归系数。测试算法:一旦训练步骤完成,分类就会很快。使用算法:首先,我们输入一些数据,并将其转换成对应的结构化数值;...
2018-11-28 13:45:22
244
原创 pandas用read_scv读取含英文双引号的文件,读取后出现行数减少的解决方法
当文本文件中带有英文双引号时,直接用pd.read_csv进行读取会导致行数减少,此时应该对read_csv设置参数quoting=3或者quoting=csv.QUOTE_NONE#quoting=3df = pd.read_csv(file, header=0, sep='\t', quoting=3)#quotint-csv.QUOTE_NONEimport csvdf = pd....
2018-11-21 17:04:39
4490
4
原创 Pandas实现Hive中的row_number窗口函数
#创建数据集df = pd.DataFrame({'A':[12,20,12,5,18,11,18], 'C':['A','B','A','B','B','A','A'], 'B':['d','d','e','d','e','e','d']})#实现row_number()df['row_number'] = df....
2018-11-21 14:53:13
2615
4
转载 Python中遍历pandas数据的几种方法介绍和效率对比说明
前言Pandas是python的一个数据分析包,提供了大量的快速便捷处理数据的函数和方法。其中Pandas定义了Series 和 DataFrame两种数据类型,这使数据操作变得更简单。Series 是一种一维的数据结构,类似于将列表数据值与索引值相结合。DataFrame 是一种二维的数据结构,接近于电子表格或者mysql数据库的形式。图片描述在数据分析中不可避免的涉及到对数据的遍历查询和...
2018-11-09 11:19:39
10147
原创 将DataFrame中的空列表替换为nan值
DataFrame中空列表显示为[],将其替换为NaN值的方法df = df.mask(df.applymap(str).eq('[]'))
2018-11-09 11:10:21
9766
原创 pandas将DataFrame中的tuple分割成数据框的多列
通过apply(pd.Series)实现将tuple进行分列df = pd.DataFrame({'a':[1,2], 'b':[(1,2), (3,4)]})df['b'].apply(pd.Series)df[['b1', 'b2']] = df['b'].apply(pd.Series)通过apply(tuple)实现将多列合成一列df['lat_long'] = df[['la...
2018-11-09 10:21:19
5582
4
原创 pandas利用replace进行全部替换或者通过选择筛选后进行替换
# -*- coding: utf-8 -*-import pandas as pd#创建数据集df = pd.DataFrame( { '名称':['产品1','产品2','产品3','产品4','产品5','产品6','产品7','产品8'], '数量':['A','0.7','0.8','0.4','0.7','B',...
2018-10-22 17:08:21
40021
5
转载 Python中的sorted函数以及operator.itemgetter函数
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lewsn2008/article/details/12068205operator.itemgetter函数operator模块提供的itemgetter函数用于获取对象的哪些维的数据,参数为一些序号(即需要获取的数据在对象中的序号),下面看例子。a = [1,2,3] >>&g...
2018-10-16 22:06:10
143
原创 python中将array数组进行排序并获取排序后的索引:argsort函数
argsort()函数是将x中的元素从小到大排列,提取其对应的index(索引)当num&gt;=0时,np.argsort()[num]就可以理解为y[num]当num&lt;0时,np.argsort()[num]就是把数组y的元素反向输出import numpy as npx = np.array([2,1,4,5,7,3,6]y = x.argsort()print (y[...
2018-10-16 21:57:48
9646
原创 pandas自定义排序
import pandas as pd#数据集df = pd.DataFrame({'word':['a','b','c'], 'num':[2,1,3]})#自定义排序顺序,此顺序对应为升序ascending=Truelist_sorted = ['b', 'a', 'c']#对相关列进行自定义排序df['word'] = df['word'].astype('category')....
2018-10-09 17:32:39
5405
原创 python实现感知机学习算法的原始形式
感知机感知机(perceptron)是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1二值。感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型。感知机学习旨在求出将训练数据进行线性划分的分离超平面。感知机学习算法的原始形式输入:训练数据集T={(x1,y1),(x2,y2),...,(xN,yN)}T=\{(x_1,y_1),(x_...
2018-09-30 09:12:31
973
原创 对DataFrame中的数据进行按区间切分进行分组
import pandas as pd#设置切分区域listBins = [0, 10, 20, 30, 40, 50, 60, 1000000]#设置切分后对应标签listLabels = ['0_10','11_20','21_30','31_40','41_50','51_60','61及以上']#利用pd.cut进行数据离散化切分"""pandas.cut(x,bins...
2018-09-29 16:41:19
42763
2
原创 利用pandas计算DataFrame两列日期相差秒数
import pandas as pd#先利用to_datetime转换为时间格式df['tm_1'] = pd.to_datetime(df['tm_1'])df['tm_2'] = pd.to_datetime(df['tm_2'])#利用&quot;.dt.seconds&quot;转换为秒,除以相对于的间隔数得到分钟、小时等df['diff_time'] = (df['tm_1'] - df['...
2018-09-29 16:25:42
21663
1
原创 python在DataFrame中实现hive的array(lateral view explode())行转列,python多列合并成一行
创建数据集dataDict = {‘a’:[‘one’,‘two’], ‘b’:[[2,3],[1,3,6]], ‘c’:[1,2]}dataDf = pd.DataFrame(dataDict)实现行转列,drop(‘level_2’, axis = 1):删掉新产生的索引,level_i中的i为groupby中列数df = t.groupby([‘a’, ‘c’]).b.apply(l...
2018-09-27 09:28:13
1638
原创 pandas处理日期函数
import pandas as pdimport dateutil#获取当天的时间curr_time = pd.datetime.today()#对时间进行格式转换为yyyyMMddcurr_date = pd.datetime.strftime(curr_time, "%Y%m%d")#将日期减一天before_1_curr_time = curr_time - dateu...
2018-09-14 10:54:21
4000
翻译 股票趋势线的绘制-维克托
上升趋势的形态 在上升趋势中,价格持续上涨而中间夹杂着暂时性的下跌走势,但下跌走势的低点不会低于前一波跌势的低点。就上升趋势而言,价格将持续创新高,期间所夹杂的回档走势的底部也不断垫高。下降趋势的形态 在下降趋势中,价格持续下跌而中间夹杂着暂时性的上涨走势,但上涨走势的高点不会高于前一波涨势的高点。就下降趋势而言,价格将持续创新低,期间所夹杂的反弹走势的高点也不断下滑...
2018-09-14 10:17:32
1495
原创 python 实现KNN算法
KNN算法原理K最近邻(KNN,K-nearestNeighbor)分类算法的核心思想是如果一个样本在特征空间中的K个最相邻的样本中的大多数属于某一个类别,则该样本属于也属于这个类别,并具有这个类别样本上的特性。即选取k个离测试点最近的样本点,输出在这k个样本点中数量最多的标签。所以要实现kNN算法,我们只需要计算出每一个样本点与测试点的距离(欧式距离),选取距离最近的k个样本,获取他们的标...
2018-09-12 22:59:58
15887
2
转载 使用Markdown编辑器写博客
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I...
2018-09-12 21:33:39
190
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人