热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PythonPandas用法速查表

文章目录数据读写数据创建数据查看数据操作数据提取数据筛选数据统计操作数据表结构数据表合并修改列名插入一列数据读写代码作用dfpd.DataFrame(pd.read_csv(‘i

文章目录

  • 数据读写
  • 数据创建
  • 数据查看
  • 数据操作
  • 数据提取
  • 数据筛选
  • 数据统计
  • 操作数据表结构
  • 数据表合并
  • 修改列名
  • 插入一列


数据读写
代码作用
df = pd.DataFrame(pd.read_csv(‘input.csv’,header=1))读取csv
df = pd.DataFrame(pd.read_excel(‘input.xlsx’))读取xlsx
df_inner.to_csv(‘output.csv’)写入CSV
df_inner.to_excel(‘output.xlsx’, sheet_name=‘sheet1’)写入Excel

设置列名dataframe.columns=['col1','col2','col3']

设置索引dataframe.set_index("col_name")

读取行数pd.read_csv(file_path,skiprows=9,nrows=10)

数据创建
代码作用
pd.Series([1, 2, 3, 4, 5])list创建Series
pd.date_range(‘20171022’, periods=6)时间索引
pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list([‘c1’, ‘c2’, ‘c3’, ‘c4’]))列标签
pd.DataFrame.from_dict({“A”:1, “B”:2, “C”:3}, orient=‘index’).T字典创建

数据查看
代码作用
df.shape维度
df.info()数据表基本信息(维度、列名称、数据格式、所占空间等)
df.dtypes列数据的格式
df[‘Name’].dtype某一列格式
df.isnull()空值
df.isnull()查看某一列空值
df[Name’].unique()某一列的唯一值
df.values数据表的值
df.columns列名称
df.head()查看前10行数据
df.tail()查看后10行数据

数据操作
代码作用
df.fillna(value=0)数字0填充空值
df[‘prince’].fillna(df[‘prince’].mean())使用列prince的均值对NA进行填充
df[‘city’]=df[‘city’].map(str.strip)清除city字段的字符空格
df[‘city’]=df[‘city’].str.lower()大小写转换
df[‘price’].astype(‘int’)更改数据格式
df.rename(columns={‘category’: ‘category-size’})更改列名称
df[‘city’].replace(‘sh’, ‘shanghai’)数据替换
df1.dropna(how=‘any’)去掉包含缺失值的行
df1.fillna(5)对缺失值进行填充
pd.isnull(df1)对缺失值进行布尔填充

数据提取
代码作用
df_csv.loc[:, [‘chrom’, ‘q_value’]]索引+列标签切片
df_csv.loc[0, [‘chrom’]]
df_csv.loc[0, ‘chrom’]
df_csv.at[0, ‘chrom’]
df_csv.iloc[1, 1]
df_csv.iat[1, 1]
提取一个标量
df_csv.iloc[3]
df_inner.loc[3]
提取一行
df_inner.iloc[0:5]
df_csv.iloc[3:5, 0:2]
df_csv.iloc[[1, 2, 4], [0, 2]]
df_csv.iloc[1:3, :]
df_inner.ix[:‘2013-01-03’,:4]
提取区域
df_inner[‘city’].isin([‘beijing’])判断city列的值是否为北京
df_inner.loc[df_inner[‘city’].isin([‘beijing’,‘shanghai’])]判断city列里是否包含beijing和shanghai,然后将符合条件的数据提取出来
pd.DataFrame(category.str[:3])提取前三个字符,并生成数据表
df_csv.loc[:, [‘chrom’, ‘q_value’]]索引+列标签切片

数据筛选
代码作用
df_inner.loc[(df_inner[‘age’] > 25) & (df_inner[‘city’] == ‘beijing’), [‘id’,‘city’,‘age’,‘category’,‘gender’]]使用“与”进行筛选
`df_inner.loc[(df_inner[‘age’] > 25) | (df_inner[‘city’] == ‘beijing’), [‘id’,‘city’,‘age’,‘category’,‘gender’]].sort([‘age’]) ```
df_inner.loc[(df_inner[‘city’] != ‘beijing’), [‘id’,‘city’,‘age’,‘category’,‘gender’]].sort([‘id’])使用“非”条件进行筛选
df_inner.loc[(df_inner[‘city’] != ‘beijing’), [‘id’,‘city’,‘age’,‘category’,‘gender’]].sort([‘id’]).city.count()对筛选后的数据按city列进行计数
df_inner.query(‘city == [“beijing”, “shanghai”]’)使用query函数进行筛选
df_inner.query(‘city == [“beijing”, “shanghai”]’).price.sum()对筛选后的结果按prince进行求和

数据统计
代码作用
df_inner.groupby(‘city’).count()对所有的列进行计数汇总
df_inner.groupby(‘city’)[‘id’].count()按城市对id字段进行计数
df_inner.groupby([‘city’,‘size’])[‘id’].count()对两个字段进行汇总计数
df_inner.groupby(‘city’)[‘price’].agg([len,np.sum, np.mean])对city字段进行汇总,并分别计算prince的合计和均值
df_inner.sample(n=3)简单的数据采样
weights = [0, 0, 0, 0, 0.5, 0.5]df_inner.sample(n=2, weights=weights)手动设置采样权重
df_inner.sample(n=6, replace=False)采样后不放回
df_inner.sample(n=6, replace=True)采样后放回
df_inner.describe().round(2).T数据表描述性统计
df_inner[‘price’].std()计算列的标准差
df_inner[‘price’].cov(df_inner[‘m-point’])计算两个字段间的协方差
df_inner.cov()数据表中所有字段间的协方差
df_inner[‘price’].corr(df_inner[‘m-point’])两个字段的相关性分析
相关系数在-1到1之间,接近1为正相关,接近-1为负相关,0为不相关
df_inner.corr()数据表的相关性分析

操作数据表结构
代码作用
df_inner.set_index(‘id’)设置索引列
df_inner.sort_values(by=[‘age’])按照 age 列排序
df_inner.sort_index()按照索引列排序
df_inner[‘group’] = np.where(df_inner[‘price’] > 3000,‘high’,‘low’)如果prince列的值>3000,group列显示high,否则显示low
df_inner.loc[(df_inner[‘city’] == ‘beijing’) & (df_inner[‘price’] >= 4000), ‘sign’]=1对复合多个条件的数据进行分组标记
pd.DataFrame((x.split(’-’) for x in df_inner[‘category’]),index=df_inner.index,columns=[‘category’,‘size’]))对category字段的值依次进行分列,并创建数据表,索引值为df_inner的索引列,列名称为category和size
df_inner=pd.merge(df_inner,split,right_index=True, left_index=True)将完成分裂后的数据表和原df_inner数据表进行匹配
df_inner.reset_index()重设索引
df_inner=df_inner.set_index(‘date’)设置日期为索引

数据表合并
代码作用
df_inner=pd.merge(df,df1,how=‘inner’)内连接(取两个集合的交集)
df_left=pd.merge(df,df1,how=‘left’)左连接(以 df 为基准,df1 在 df 中无匹配则为空)
df_right=pd.merge(df,df1,how=‘right’)右连接(以 df1 为基准,df 在 df1 中无匹配则为空)
df_outer=pd.merge(df,df1,how=‘outer’)全连接(取两个集合的并集,包含有 df , df1 的全部数据行,无匹配则填充空)

修改列名
代码作用
a.columns = [‘a’,‘b’,‘c’]列名全部修改
a.rename(columns={‘A’:‘a’}, inplace = True)修改部分列名

插入一列
代码作用
frame.insert(0, ‘num’, 1)在第一列插入名为num的列,值为1
frame.insert(0, ‘num’, np.[i for i in rang(10)], allow_duplicates=True)在第一列插入名为num的列,值为1…10,允许有重复列

推荐阅读
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
  • java drools5_Java Drools5.1 规则流基础【示例】(中)
    五、规则文件及规则流EduInfoRule.drl:packagemyrules;importsample.Employ;ruleBachelorruleflow-group ... [详细]
  • 本文介绍了如何使用MATLAB调用摄像头进行人脸检测和识别。首先需要安装扩展工具,并下载安装OS Generic Video Interface。然后使用MATLAB的机器视觉工具箱中的VJ算法进行人脸检测,可以直接调用CascadeObjectDetector函数进行检测。同时还介绍了如何调用摄像头进行人脸识别,并对每一帧图像进行识别。最后,给出了一些相关的参考资料和实例。 ... [详细]
  • 在本教程中,我们将看到如何使用FLASK制作第一个用于机器学习模型的RESTAPI。我们将从创建机器学习模型开始。然后,我们将看到使用Flask创建AP ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文讨论了如何使用IF函数从基于有限输入列表的有限输出列表中获取输出,并提出了是否有更快/更有效的执行代码的方法。作者希望了解是否有办法缩短代码,并从自我开发的角度来看是否有更好的方法。提供的代码可以按原样工作,但作者想知道是否有更好的方法来执行这样的任务。 ... [详细]
  • 第四章高阶函数(参数传递、高阶函数、lambda表达式)(python进阶)的讲解和应用
    本文主要讲解了第四章高阶函数(参数传递、高阶函数、lambda表达式)的相关知识,包括函数参数传递机制和赋值机制、引用传递的概念和应用、默认参数的定义和使用等内容。同时介绍了高阶函数和lambda表达式的概念,并给出了一些实例代码进行演示。对于想要进一步提升python编程能力的读者来说,本文将是一个不错的学习资料。 ... [详细]
  • 本文讨论了一个数列求和问题,该数列按照一定规律生成。通过观察数列的规律,我们可以得出求解该问题的算法。具体算法为计算前n项i*f[i]的和,其中f[i]表示数列中有i个数字。根据参考的思路,我们可以将算法的时间复杂度控制在O(n),即计算到5e5即可满足1e9的要求。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • This article discusses the efficiency of using char str[] and char *str and whether there is any reason to prefer one over the other. It explains the difference between the two and provides an example to illustrate their usage. ... [详细]
  • #define_CRT_SECURE_NO_WARNINGS#includelist.h#includevoidSListInit(PNode*pHead ... [详细]
  • Parity game(poj1733)题解及思路分析
    本文是对题目"Parity game(poj1733)"的解题思路进行分析。题目要求判断每次给出的区间内1的个数是否和之前的询问相冲突,如果冲突则结束。本文首先介绍了离线算法的思路,然后详细解释了带权并查集的基本操作。同时,本文还对异或运算进行了学习,并给出了具体的操作步骤。最后,本文给出了完整的代码实现,并进行了测试。 ... [详细]
  • tcpdump 4.5.1 crash 深入分析
    tcpdump 4.5.1 crash 深入分析 ... [详细]
  • 颜色迁移(reinhard VS welsh)
    不要谈什么天分,运气,你需要的是一个截稿日,以及一个不交稿就能打爆你狗头的人,然后你就会被自己的才华吓到。------ ... [详细]
author-avatar
左胸花枯萎
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有