python中的pandas的两种基本使用_python基础3:Pandas中常用操作

python中的pandas的两种基本使用_python基础3:Pandas中常用操作

借了一张图

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()

python中的pandas的两种基本使用_python基础3:Pandas中常用操作

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/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球