完整资料:[数据挖掘入门介绍]

(https://github.com/YouChouNoBB/data-mining-introduction)

# coding=utf-8
# @author: bryan import pandas as pd
import numpy as np
import pymysql #缩写
# df 任意的Pandas DataFrame对象
# s 任意的Pandas Series对象,表示一列 #导入数据
filename='D:/IJCAI/file.csv'
pd.read_csv(filename,sep=' ')#从CSV文件导入数据
df=pd.read_csv(filename,sep=' ',header=None) #没有头的文件
df.columns =['f1','f2']
pd.read_table(filename)#从限定分隔符的文本文件导入数据
pd.read_excel(filename)#从Excel文件导入数据
query='select user_id,item_id from data'
db = pymysql.connect(host='host_name', port=3600, user='user_name', passwd='123456', db='db_name',charset="utf8")
pd.read_sql(query, db)#从SQL表/库导入数据
pd.read_json(json_string)#从JSON格式的字符串导入数据
pd.read_html(url)#解析URL、字符串或者HTML文件,抽取其中的tables表格
pd.read_clipboard()#从你的粘贴板获取内容,并传给read_table() #自己构造dataframe数据
df=pd.DataFrame([[1,2,3],[4,5,6]],columns=['f1','f2','f3'])
df=pd.DataFrame({'user_id':[1,2,3],'item_id':[12,34,56]}) # 按列构造
df=pd.DataFrame([{'user_id':1,'item_id':2},{'user_id':'3'},{'item_id':4}]) #按行构造 #导出数据
df.to_csv(filename,index=False,sep=',')#导出数据到CSV文件
df.to_excel(filename) #导出数据到Excel文件
df.to_sql(table_name, db) #导出数据到SQL表
df.to_json(filename) #以Json格式导出数据到文本文件 #查看数据
df.head(n)#查看DataFrame对象的前n行
df.tail(n)#查看DataFrame对象的最后n行
df.shape()#查看行数和列数
df.info()#查看索引、数据类型和内存信息
df.describe()#查看数值型列的汇总统计
df['user_id'].value_counts(dropna=False) #查看Series对象的唯一值和计数 #数据选取
s=df['user_id']#根据列名,并以Series的形式返回列
df[['user_id', 'item_id']]#以DataFrame形式返回多列
s.iloc[0]#按位置选取数据
s.loc['index_one']#按索引选取数据
df.iloc[0,:]#返回第一行
df.iloc[0,0]#返回第一列的第一个元素
df.sample(frac=0.5) #采样
df.sample(n=len(df)) #数据整理 pd.isnull()#检查DataFrame对象中的空值,并返回一个Boolean数组
pd.notnull()#检查DataFrame对象中的非空值,并返回一个Boolean数组
df.dropna(axis=0)#删除所有包含空值的行
df.dropna(axis=1)#删除所有包含空值的列
df.dropna(axis=1,thresh=n)#删除所有小于n个非空值的行
df.fillna(x)#用x替换DataFrame对象中所有的空值
df.fillna(df.mode().iloc[0]) #众值填充
df.fillna(df.median()) #中位数填充
df["user_age"][df.age.isnull()]="0" #对某一列填充
s.astype(float)#将Series中的数据类型更改为float类型
df["user_age"]=df["user_age"].astype('int') #更改某列类型
s.replace(1,'one')#用‘one’代替所有等于1的值
s.replace([1,3],['one','three'])#用'one'代替1,用'three'代替3
df.columns = ['a','b','c']#重命名列名
df.rename(columns=lambda x: x + 1)#批量更改列名
df.rename(index=lambda x: x + 1)#批量重命名索引
df.rename(columns={'old_name': 'new_ name'})#选择性更改列名
df.set_index('column_one')#更改索引列
df.reset_index(drop=True) #重置索引,主要用在各种操作之后,索引会被打乱 #数据处理#Filter 、Sort 和 GroupBy
df[df[col] > 0.5]#选择col列的值大于0.5的行
df.sort_values(by='col1',ascending=True)#按照列col1排序数据,默认升序排列
df.sort_values([col1,col2], ascending=[True,False])#先按列col1升序排列,后按col2降序排列数据
df.groupby(col)#返回一个按列col进行分组的Groupby对象
df.groupby([col1,col2])#返回一个按多列进行分组的Groupby对象
df.groupby(col1)[col2].apply(np.mean)#返回按列col1进行分组后,列col2的均值
df.pivot_table(index=col1, values=[col2,col3], aggfunc=max)#创建一个按列col1进行分组,并计算col2和col3的最大值的数据透视表
df.groupby(col1).agg(np.mean)#返回按列col1分组的所有列的均值
df.groupby('user_id',as_index=False)['is_trade'].agg({'buy':'sum','click':'count','cvr':'mean'}) #生成新的df,列是user_id,buy,click,cvr for index,row in df.iterrows():
# index 是行号
# row是一行
print(index,row['user_id'])
break
pass for key,df in df.groupby('user_gender_id'):
# key 就是user_id
# df就是分组后的dataframe
print(key,len(df))
pass df['user_id'].apply(np.mean)#对DataFrame中的每一列应用函数np.mean
df.apply(np.max,axis=1)#对DataFrame中的每一行应用函数np.max
#构造分组排序特征,比如对shop分组,对组里面的item转化率分别排序
df.groupby('shop_id',as_index=False)['item_cvr'].rank(ascending=False, method='dense') # 数据合并
df1.append(df2)#将df2中的行添加到df1的尾部
pd.concat([df1, df2],axis=1)#按列合并
pd.concat([df1,df2],axis=0)#按行合并
pd.merge(df1,df2,on='user_id',how='inner')#对df1的列和df2的列执行SQL形式的join
#差集计算
df1=pd.DataFrame({'user_id':[1,2,3,4],'item_id':[11,22,33,44]})
df2=pd.DataFrame({'user_id':[1,2]})
df2['flag']=1
df3=pd.merge(df1,df2,on='user_id',how='left')
df3=df3[df3.flag.isnull()].drop('flag',axis=1) # 数据统计 df.mean()#返回所有列的均值
df.corr()#返回所有列与列之间的相关系数
df.item_star_level.corr(df.is_trade)
df.count()#返回每一列中的非空值的个数
df.max()#返回每一列的最大值
df.min()#返回每一列的最小值
df.median()#返回每一列的中位数
df.std()#返回每一列的标准差
df.dtypes #查看数据类型
df["user_age_level"].hist() #查看变量分布
df.isnull().sum() #查看每一列缺失值情况
df['n_null'] = df.isnull().sum(axis=1) #查看每一行缺失值情况
df["user_age_level"].value_counts() #查看这一列的值统计
df['user_age_level'].unique() #查看数据取值

Pandas基础用法-数据处理【全】-转的更多相关文章

  1. pandas基础用法——索引

    # -*- coding: utf-8 -*- # Time : 2016/11/28 15:14 # Author : XiaoDeng # version : python3.5 # Softwa ...

  2. pandas 基础用法

    pandas 是一个基于 Numpy 构建, 强大的数据分析工具包 主要功能 独特的数据结构 DataFrame, Series 集成时间序列功能 提供丰富的数学运算操作 灵活处理缺失数据 Serie ...

  3. pandas基础用法

    首先生成一维数组 data = pd.Series([1,2,3,4,5,6,7,8,9])data运行结果 data.head()#默认取前五条,当然也可以加参数 data.tail()#默认取前五 ...

  4. 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍

    一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...

  5. Pandas基础学习与Spark Python初探

    摘要:pandas是一个强大的Python数据分析工具包,pandas的两个主要数据结构Series(一维)和DataFrame(二维)处理了金融,统计,社会中的绝大多数典型用例科学,以及许多工程领域 ...

  6. Unity 3D开发-C#脚本语言的一些基础用法

    Unity 中C#语言的一些基础用法 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 Lerp -- 线 ...

  7. 《零基础学JavaScript(全彩版)》学习笔记

    <零基础学JavaScript(全彩版)>学习笔记 二〇一九年二月九日星期六0时9分 前期: 刚刚学完<零基础学HTML5+CSS3(全彩版)>,准备开始学习JavaScrip ...

  8. 数据分析02 /pandas基础

    数据分析02 /pandas基础 目录 数据分析02 /pandas基础 1. pandas简介 2. Series 3. DataFrame 4. 总结: 1. pandas简介 numpy能够帮助 ...

  9. PropertyGrid控件由浅入深(二):基础用法

    目录 PropertyGrid控件由浅入深(一):文章大纲 PropertyGrid控件由浅入深(二):基础用法 控件的外观构成 控件的外观构成如下图所示: PropertyGrid控件包含以下几个要 ...

随机推荐

  1. Web里URL空格的转换方法

    今天收到一个Bug修复的任务,Bug为在页面上输入一个文件夹名包含空格,点击该文件夹的URL后链接错误. 看URL是HttpUtility.UrlEncode将空格转换成了“+”号,原因找到就着手解决 ...

  2. 初涉Quartz

    1.首先需要导入包,必须导入的包如下:      quartz-1.8.5.jar  commons-logging.jar  spring-core-3.0.5.RELEASE.jar  sprin ...

  3. Week 3: Assessing performance 笔记

    得到一个模型之后如何评价其性能? training error & generalization error & test error 如何理解generalization error ...

  4. day7笔记

    一.上节回顾 字典:dic = {'name':'alex'} 1,增 dic['k'] = 'v' 有键值对,则覆盖 setdefault 有键值对,不添加 dic.setdefault('k1', ...

  5. linux下的shell 快捷键

    Ctrl+p重复上一次命令Ctrl+a跳到第一个字符前Ctrl+x同上但再按一次会从新回到原位置Ctrl+b前移一个字符不删除字符情况下Ctrl+h删除前一个字符Ctrl+u删除提示符前的所有字符Ct ...

  6. SSH后台管理系统,实现查询+分页

    一个搜索框,然后会获取大量信息,将信息进行分页,每一页显示固定条数. mysql中使用“like”和“%%”进行模糊匹配,用“limit”进行分页. 1.首先创建一个页面信息的实体类,代码如下: im ...

  7. 辛星教你高速掌握PHP的正則表達式

    首先说一下,这篇文章也是我在看了数个大牛的博客之后总结出来的,因此首先向这些大牛表示崇高的敬意和感谢,因为人数众多.并且来源也是特别分散,就不一一介绍了,见谅. ************跨语言的主题* ...

  8. iOS学习笔记(二)——Hello iOS

    前面写了iOS开发环境搭建,只简单提了一下安装Xcode,这里再补充一下,点击下载Xcode的dmp文件,稍等片刻会有图一(拖拽Xcode至Applications)的提示,拖拽至Applicatio ...

  9. API网关性能比较:NGINX vs. ZUUL vs. Spring Cloud Gateway vs. Linkerd API 网关出现的原因

    API网关性能比较:NGINX vs. ZUUL vs. Spring Cloud Gateway vs. Linkerd http://www.infoq.com/cn/articles/compa ...

  10. Constructor Acquires, Destructor Releases Resource Acquisition Is Initialization

    w https://zh.wikipedia.org/wiki/RAII RAII要求,资源的有效期与持有资源的对象的生命期严格绑定,即由对象的构造函数完成资源的分配(获取),同时由析构函数完成资源的 ...