pandas
Alex.liu
这个作者很懒,什么都没留下…
展开
-
对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 · 6657 阅读 · 0 评论 -
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 · 8627 阅读 · 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 · 2180 阅读 · 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 · 8084 阅读 · 0 评论 -
pandas实现分组去重计数功能
用pd.Series.nunique在pandas中实现分组计数功能grouped = data.groupby(["col1", "col2"])grouped.agg({"col3": "count", "col4": pd.Series.nunique})原创 2019-07-03 11:34:53 · 19183 阅读 · 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 · 5041 阅读 · 0 评论 -
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 · 7070 阅读 · 0 评论 -
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 · 4441 阅读 · 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 · 2568 阅读 · 4 评论 -
Python中遍历pandas数据的几种方法介绍和效率对比说明
前言Pandas是python的一个数据分析包,提供了大量的快速便捷处理数据的函数和方法。其中Pandas定义了Series 和 DataFrame两种数据类型,这使数据操作变得更简单。Series 是一种一维的数据结构,类似于将列表数据值与索引值相结合。DataFrame 是一种二维的数据结构,接近于电子表格或者mysql数据库的形式。图片描述在数据分析中不可避免的涉及到对数据的遍历查询和...转载 2018-11-09 11:19:39 · 10034 阅读 · 0 评论 -
将DataFrame中的空列表替换为nan值
DataFrame中空列表显示为[],将其替换为NaN值的方法df = df.mask(df.applymap(str).eq('[]'))原创 2018-11-09 11:10:21 · 9720 阅读 · 0 评论 -
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 · 5497 阅读 · 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 · 39688 阅读 · 4 评论 -
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 · 5353 阅读 · 0 评论 -
对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 · 42552 阅读 · 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'])#利用".dt.seconds"转换为秒,除以相对于的间隔数得到分钟、小时等df['diff_time'] = (df['tm_1'] - df['...原创 2018-09-29 16:25:42 · 21336 阅读 · 1 评论