借了一张图
Pandas:提供名为DataFrame的数据结构,比较契合统计分析中的表结构,做数据分析用的,主要是做表格数据呈现。
每次在使用Pandas的时候,不是看记的笔记就是百度,这里集中整理一下
目录:
1、创建一个空的DataFrame
2、txt、csv、excel、数据库 数据读取
3、3、数据写出。如将数据导入数据库,或导出为excel文件
4、排序
5、计算某列有多少个不同的值,类似sql中distinct
6、分组函数(类似sql中group by)
7、截取某字段中前5个字符(注意:前闭后开)
8、删除floor字段中的’层’字,其它内容保留。
9、agg函数—常与groupby函数连用。如:每个大陆对饮品消耗的最小值、平均值、最大值
10、在字段中对数据进行模糊匹配,类似sql中like
11、数据筛选,类似sql中like
12、多个数据条件筛选,类似sql中and 、or
13、pivot_table类似excel中数据透视表
14、合并两个dateframe,类似sql中union all 、left join
15、DataFrame删除某列
16、填充DataFrame中的空值
17、对df中的某个字段进行分割,一个字段拆分为多个字段
18、对df中的某个字段分层。类似sql中case when
19、数据提取。如选取某个字段,某行
20、统计函数(平均值,最大值,最小值,标准差,中位数等)
21、对某列累加求和cumsum()
22、对日期的处理。(如时间数据类型转换,时间加减)
23、对数据进行去重drop_duplicates()
24、字典转化为DataFrame
25、修改字段名rename
26、数据类型转换
27、计算环比pct_change()
28、数据转置行变成列。df.T
29、查看数据常用操作。如多少行多少列、列字段及数据类型等
1、创建一个空的DataFrame
a = pd.DataFrame()
2、txt、csv、excel、数据库 数据读取
1、读取txt文件
【方法一】
df = pd.read_table(“F:/datafrog/2-PYTHON/CDNOW_master.txt”,names = [‘user_id’,’order_dt’,’order_products’,’order_amount’],sep = ‘\s+’)
【方法二】
columns = [‘user_id’,’order_dt’,’order_products’,’order_amount’]
df = pd.read_table(“CDNOW_master.txt”,names = columns,sep = ‘\s+’)
因为原始数据不包含表头,所以需要赋予”names”。字符串是空格分割,用”\s+”表示匹配任意空白符。
2、读取CSV文件
df = pd.read_csv(“F:/datafrog/2-PYTHON/链家二手房.csv”,sep = ‘,’,engine = ‘python’)
3、读取excel文件
data = pd.read_excel(“F:/datafrog/201708收银.xlsx”)
4、数据库读取(MYSQL)
导入模块
from sqlalchemy import create_engine
import pymysql
pymysql.install_as_MySQLdb() # 为了兼容mysqldb
创建连接
engine = create_engine(‘mysql://用户名:密码@IP地址:端口/数据库?charset=gbk’)
conn = engine.connect()
读取数据
data1 = pd.read_sql_query(‘select * from data’, con=conn)
print(data1.head())
3、数据写出。如将数据导入数据库,或导出为excel文件
1、将数据写出为csv
import pandas as pd
data.to_csv(‘数据储存位置’,index = 是否导出索引)
data.to_csv(‘data.csv’,index = False)
2、将数据写出为excel
data.to_excel(‘数据储存位置’,index=是否导出索引)
data.to_excel(‘data.xlsx’,index=False)
3、将数据写入数据库
不用在数据库中建表,在导入过程中会自动在数据库中建表
from sqlalchemy import create_engine #导入模块
engine =create_engine(‘mysql+pymysql://root:root@127.0.0.1/data?charset=utf8′, encoding=’utf-8’, echo=True)#创建数据库链接
conn = engine.connect()
create_merchant.to_sql(‘HZ_CREATE_CUSTOMER’,con=datafrog,if_exists=’append’,index=False)
data.to_sql(‘data’,con = conn)
4、排序
1、按照1个字段排序
df.sort_values(by = ‘quantity’,ascending=False) # False降序
ascending = False,降序
ascending = True,升序
2、按照2个及以上字段排序
df.sort_values(by = [‘quantity’,’month’],ascending=False) # False降序
5、计算某列有多少个不同的值,类似sql中distinct
1、计算每个不同值有在该列中有多少重复值
【方法一】
chipo[‘choice_description’].value_counts()
【方法二】
df[“User_ID”].drop_duplicates(keep=’first’).count()
2、计算某列有多少个不同的重复值
df[‘User_ID’].nunique()
6、分组函数(类似sql中group by)
1、按照1个字段分组
df.groupby(‘key1’).order.mean()
2、按照2个字段分组
df.groupby([‘month’,’chty’]).order.mean()
7、截取某字段中前5个字符(注意:前闭后开)
df[” 地址”] = df[“地址”].str[0:5]
8、删除floor字段中的’层’字,其它内容保留。
df[‘floor’] = df[‘floor’].str.extract(‘(\d+)层’)
9、agg函数—常与groupby函数连用。如:每个大陆对饮品消耗的最小值、平均值、最大值
chipo.groupby(‘order_id’).agg({‘item_price_01′:’sum’}).item_price_01.mean()
2、每个大陆对饮品消耗的最小值、平均值、最大值
drinks.groupby(‘continent’)[‘spirit_servings’].agg([‘min’,’mean’,’max’])
案例:
df.groupby(‘area_level’).agg({‘面积’:’sum’,’面积’:’mean’,’单价(平方米)’:’mean’,’价格(W)’:’mean’})
类似SQL中:
Select userid,max(monitortime),avg(prince) from student group by userid
10、在字段中对数据进行模糊匹配,类似sql中like
1、筛选某字段以G开头的数据
euro12[euro12.Team.str.startswith(‘G’)]
2、筛选某字段以G结束的数据
euro12[‘Team’].str.endwith(‘G’)
11、数据筛选,类似sql中like
1、选取队名为’England’,’Italy’,’Russia’ 的所有数据
Euro12[euro12[‘Team’].isin([‘England’,’Italy’,’Russia’])]
2、筛选不是欧洲队的所有数据
Euro12[~euro12[‘Team’] == ‘欧洲队’)]
3、筛选小区名称有”阳光”二字的所有小区数据
【方法一】
df1[df1[‘小区名称’].str.contains(‘阳光’)]
【方法二】
df[df[“小区名称”].str.contains(r’.?阳光.‘)]
【方法三】
df[df[“小区名称”].isin([“阳光”])]
类似sql中 select * from df where 小区名称 like ‘%阳光%’
3、筛选小区名称有”阳光”或者’雅居’二字的所有小区数据
df1[df1[‘小区名称’].str.contains(‘阳光|雅居’)]
类似where 小区名称 like ‘%阳光%’or 小区名称 like ‘%雅居%’
4、选取以字母G开头的球队数据
euro12[euro12.Team.str.startswith(‘G’)]
12、多个数据条件筛选,类似sql中and 、or
1、筛选时间大于2019-3-12并且小于2019-12-12所有数据
df[(df.create_date>= ‘2019-3-12’) & (df.create_date
Original: https://blog.csdn.net/weixin_39900437/article/details/113968951
Author: weixin_39900437
Title: python中的pandas的两种基本使用_python基础3:Pandas中常用操作
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/741310/
转载文章受原作者版权保护。转载请注明原作者出处!