千家信息网

pandas如何使用

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,小编给大家分享一下pandas如何使用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、生成数据表1、首先导入pandas
千家信息网最后更新 2025年01月23日pandas如何使用

小编给大家分享一下pandas如何使用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

一、生成数据表
1、首先导入pandas库,一般都会用到numpy库,所以我们先导入备用:

import numpy as npimport pandas as pd12

2、导入CSV或者xlsx文件:

df = pd.DataFrame(pd.read_csv('name.csv',header=1))df = pd.DataFrame(pd.read_excel('name.xlsx'))123

3、用pandas创建数据表:

df = pd.DataFrame({"id":[1001,1002,1003,1004,1005,1006],  "date":pd.date_range('20130102', periods=6),  "city":['Beijing ', 'SH', ' guangzhou ', 'Shenzhen', 'shanghai', 'BEIJING '], "age":[23,44,54,32,34,32], "category":['100-A','100-B','110-A','110-C','210-A','130-F'],  "price":[1200,np.nan,2133,5433,np.nan,4432]},  columns =['id','date','city','category','age','price'])12345678

2、数据表信息查看
1、维度查看:

df.shape12

2、数据表基本信息(维度、列名称、数据格式、所占空间等):

df.info()12

3、每一列数据的格式:

df.dtypes12

4、某一列格式:

df['B'].dtype12

5、空值:

df.isnull()12

6、查看某一列空值:

df.isnull()12

7、查看某一列的唯一值:

df['B'].unique()12

8、查看数据表的值:
df.values
9、查看列名称:

df.columns12

10、查看前10行数据、后10行数据:

df.head() #默认前10行数据df.tail()    #默认后10 行数据123

三、数据表清洗
1、用数字0填充空值:

df.fillna(value=0)12

2、使用列prince的均值对NA进行填充:

df['prince'].fillna(df['prince'].mean())12

3、清楚city字段的字符空格:

df['city']=df['city'].map(str.strip)12

4、大小写转换:

df['city']=df['city'].str.lower()12

5、更改数据格式:

df['price'].astype('int')       12

6、更改列名称:

df.rename(columns={'category': 'category-size'}) 12

7、删除后出现的重复值:

df['city'].drop_duplicates()12

8、删除先出现的重复值:

df['city'].drop_duplicates(keep='last')12

9、数据替换:

df['city'].replace('sh', 'shanghai')12

四、数据预处理

df1=pd.DataFrame({"id":[1001,1002,1003,1004,1005,1006,1007,1008], "gender":['male','female','male','female','male','female','male','female'],"pay":['Y','N','Y','Y','N','Y','N','Y',],"m-point":[10,12,20,40,40,40,30,20]})12345

1、数据表合并

df_inner=pd.merge(df,df1,how='inner')  # 匹配合并,交集df_left=pd.merge(df,df1,how='left')        #df_right=pd.merge(df,df1,how='right')df_outer=pd.merge(df,df1,how='outer')  #并集12345

2、设置索引列

df_inner.set_index('id')12

3、按照特定列的值排序:

df_inner.sort_values(by=['age'])12

4、按照索引列排序:

df_inner.sort_index()12

5、如果prince列的值>3000,group列显示high,否则显示low:

df_inner['group'] = np.where(df_inner['price'] > 3000,'high','low')12

6、对复合多个条件的数据进行分组标记

df_inner.loc[(df_inner['city'] == 'beijing') & (df_inner['price'] >= 4000), 'sign']=112

7、对category字段的值依次进行分列,并创建数据表,索引值为df_inner的索引列,列名称为category和size

pd.DataFrame((x.split('-') for x in df_inner['category']),index=df_inner.index,columns=['category','size']))12

8、将完成分裂后的数据表和原df_inner数据表进行匹配

df_inner=pd.merge(df_inner,split,right_index=True, left_index=True)12

五、数据提取
主要用到的三个函数:loc,iloc和ix,loc函数按标签值进行提取,iloc按位置进行提取,ix可以同时按标签和位置进行提取。
1、按索引提取单行的数值

df_inner.loc[3]12

2、按索引提取区域行数值

df_inner.iloc[0:5]12

3、重设索引

df_inner.reset_index()12

4、设置日期为索引

df_inner=df_inner.set_index('date') 12

5、提取4日之前的所有数据

df_inner[:'2013-01-04']12

6、使用iloc按位置区域提取数据

df_inner.iloc[:3,:2] #冒号前后的数字不再是索引的标签名称,而是数据所在的位置,从0开始,前三行,前两列。12

7、适应iloc按位置单独提起数据

df_inner.iloc[[0,2,5],[4,5]] #提取第0、2、5行,4、5列12

8、使用ix按索引标签和位置混合提取数据

df_inner.ix[:'2013-01-03',:4] #2013-01-03号之前,前四列数据12

9、判断city列的值是否为北京

df_inner['city'].isin(['beijing'])12

10、判断city列里是否包含beijing和shanghai,然后将符合条件的数据提取出来

df_inner.loc[df_inner['city'].isin(['beijing','shanghai'])] 12

11、提取前三个字符,并生成数据表

pd.DataFrame(category.str[:3])12

六、数据筛选
使用与、或、非三个条件配合大于、小于、等于对数据进行筛选,并进行计数和求和。
1、使用"与"进行筛选

df_inner.loc[(df_inner['age'] > 25) & (df_inner['city'] == 'beijing'), ['id','city','age','category','gender']]12

2、使用"或"进行筛选

df_inner.loc[(df_inner['age'] > 25) | (df_inner['city'] == 'beijing'), ['id','city','age','category','gender']].sort(['age']) 12

3、使用"非"条件进行筛选

df_inner.loc[(df_inner['city'] != 'beijing'), ['id','city','age','category','gender']].sort(['id']) 12

4、对筛选后的数据按city列进行计数

df_inner.loc[(df_inner['city'] != 'beijing'), ['id','city','age','category','gender']].sort(['id']).city.count()12

5、使用query函数进行筛选

df_inner.query('city == ["beijing", "shanghai"]')12

6、对筛选后的结果按prince进行求和

df_inner.query('city == ["beijing", "shanghai"]').price.sum()12

七、数据汇总
主要函数是groupby和pivote_table
1、对所有的列进行计数汇总

df_inner.groupby('city').count()12

2、按城市对id字段进行计数

df_inner.groupby('city')['id'].count()12

3、对两个字段进行汇总计数

df_inner.groupby(['city','size'])['id'].count()12

4、对city字段进行汇总,并分别计算prince的合计和均值

df_inner.groupby('city')['price'].agg([len,np.sum, np.mean]) 12

八、数据统计
数据采样,计算标准差,协方差和相关系数
1、简单的数据采样

df_inner.sample(n=3) 12

2、手动设置采样权重

weights = [0, 0, 0, 0, 0.5, 0.5]df_inner.sample(n=2, weights=weights) 123

3、采样后不放回

df_inner.sample(n=6, replace=False) 12

4、采样后放回

df_inner.sample(n=6, replace=True)12

5、 数据表描述性统计

df_inner.describe().round(2).T #round函数设置显示小数位,T表示转置12

6、计算列的标准差

df_inner['price'].std()12

7、计算两个字段间的协方差

df_inner['price'].cov(df_inner['m-point']) 12

8、数据表中所有字段间的协方差

df_inner.cov()12

9、两个字段的相关性分析

df_inner['price'].corr(df_inner['m-point']) #相关系数在-1到1之间,接近1为正相关,接近-1为负相关,0为不相关12

10、数据表的相关性分析

df_inner.corr()12

九、数据输出
分析后的数据可以输出为xlsx格式和csv格式
1、写入Excel

df_inner.to_excel('excel_to_python.xlsx', sheet_name='bluewhale_cc') 12

2、写入到CSV

df_inner.to_csv('excel_to_python.csv')

以上是"pandas如何使用"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

数据 数据表 索引 字段 位置 格式 函数 名称 条件 标签 三个 两个 协方差 篇文章 分析 信息 内容 区域 均值 字符 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 csol连接服务器中断重新登陆 网吧抽奖软件开发 数据库 sql文件怎么打开 免费云服务器价格对比 网络配置服务器的地址在哪里 手机微信软件开发者是谁 南京市天妙互联网科技有限公司 南京秦淮路王希贤软件开发 服务器宣传视频具体怎么搞 青岛租车软件开发 河南中高科网络技术有限公司 access数据库入门 安永合规数据库 软件开发前期的费用 怀旧服可以在哪个服务器下载 多台电脑连接打印服务器 强制网络安全认证体系 联想服务器可以扩展硬盘吗 湖北订制软件开发多少钱 找网络安全的工作需要学习什么 初中网络安全为人民主题班会 广东选调生有服务器吗 为什么现在很少出现网络安全问题 非煤矿山分级管控数据库 iphone 13验证失败无法连接服务器 为赌博提供软件开发 化工网络安全国家规定 网络安全及保密工作检查 网络安全法错误 网络安全网站电影
0