Python Pandas常用函数方法总结

编程入门 行业动态 更新时间:2024-10-26 06:36:48
初衷

numpy、pandas、matplotlib、scipy 等可以说是最最最常用的 python 库了。我们在使用 python 库的时候,通常会遇到两种情况。以 pandas 举例。

  • 我想对 pandas 数据结构的数据实现某种操作,但是我不知道或者说在我的印象里似乎已经不记得是否有这样的函数方法,如果有,又该用哪个方法呢?
  • 我想实现某种数据操作,我记得我用过或者见过某个函数可以实现这个功能,但是我死活想不起来那个函数叫啥了。或者,我想起来了哪个函数可以实现这个功能,但是我想知道是否有更好的选择。

这个时候大家就会开始借助百度、知乎、谷歌、csdn 开始进行关键搜索了。这样做当然可以,最终也能得到你想要的结果,但是就会面临两个小问题。

  • 有时候我想对数据做这样的操作,我心里知道是这个意思,但是我不知道如何去描述这个事情,关键词不精确,导致搜索的结果有偏差,搜索技术不行,走了不少弯路。
  • 搜索到别人提供的结果,但是呢,要么排版很乱,要么长篇大论,从函数接口开始一点一点说,一堆你不想要的信息,让你 get 不到重点,明明一秒钟可以解决的问题,却花了你一分钟去看别人的解释,获取重点,浪费了不少时间。

基于以上,我就在想如何解决这样一个问题。解决方案如下:假如你知道但只是忘记了某个函数可以实现这个功能,那么当你看到函数名称的时候,就会想起来。所以,我想把最最常用的一些方法和函数名称直接罗列出来,然后你一眼扫过去或者直接 ctrl+f 搜索中文,就能轻易唤起你曾经的记忆。假如你不知道是否存在一个函数,有你想要的功能,我依然还是把函数名称罗列出来,然后在其后进行一个中文的补充说明。你一眼扫过这些函数及其补充说明,相信很快就能判断是否有满足你需求的函数。

下面的内容这样组织,第二部分我罗列出常用的 pandas 函数方法,及其补充说明,第三部分我对这些函数的用法进行举例子,你拷贝到代码中进行修改就可以直接使用,这比从接口模板开始一点一点看省事多了。我相信这也是大部分优秀的程序员想要的东西,用最短的时间,完成想做的事情。当然,当下面的内容不满足你的需求,你可以进一步地去搜索即可。

以下函数方法,涵盖了 90% 以上的使用情况,值得收藏,作为小字典查询。

除非你经常用某种语言,函数方法烂熟于心而根本不需要查询,否则的话,大部分人也记不住这些东西。可能只记得有这么一个东西,都是现查别人的代码,要么拷贝过来改改,要么手抄过来。特别是我这种,接触的语言比较多,就经常搞串用法,大部分时候 ,都是现查现卖。

pandas 最最常用函数罗列## 读写pd.series #定义一维标记数组pd.dataframe #定义数据框pd.read_csv #读取逗号分隔符文件pd.read_excel #读取 excel 表格pd.to_excel #写入 excel 表格pd.read_sql #读取 sql 数据pd.read_table #读取 tablepd.read_json #读取 json 文件pd.read_html #读取 htmlpd.read_clipboard() #从剪切板读入数据df.to_csv #写入 csv 文件df.to_excel #写入 excel 文件df.to_sql #写入 sql 表df.to_json #写入 json 文件df.to_html #写入 html 表格df.to_clipboard() #写入剪切板## 数据展示和统计df.info() #统计数据信息df.shape() #统计行数和列数df.index() #显示索引总数df.columns() #显示数据框有哪些列df.count() #显示有多少个记录df.head(n) #返回前 n 个,默认 5df.tail(n) #返回后 n 个df.sample(n) #随机选取 n 行df.sample(frac = 0.8) #百分比为 0.8 的选取df.dtypes #查看每一列的数据类型df.sum() #数据框按列求和df.cumsum() #数据框累计求和df.min() #给出每列的最小值df.max() #给出每列的最大值df['列名'].idxmin() #获取数据框某一列的最小值myseries.idxmin() #获取 series 的最小值df['列名'].idxmax() #获取数据框某一列的最大值myseries.idxmax() #获取 series 的最大值df.describe() #关数据的基本统计信息描述df.mean() #给出数据框每一列的均值df.median() #给出数据框每一列的中位数df.quantile #给出分位数df.var() #统计每一列的方差df.std() #统计每一列的标准差df.cummax() #寻找累计最大值,即已出现中最大的一个df.cummin() #累计最小值df['列名'].cumproad() #计算累积连乘len(df) #统计数据框长度df.isnull #返回数据框是否包含 null 值df.corr() #返回列之间的相关系数,以矩阵形式展示df['列名'].value_counts() #列去重后给每个值计数## 数据选择myseries['列名'] #用中括号获取列df['列名'] #选取指定列df.列名 #同上df[n0:n1] #返回 n0 到 n1 行之间的数据框df.iloc[[m],[n]] #iloc按行号来索引,两层中括号,取第 m 行第 n 列df.loc[m:n] #loc 按标签来索引,返回索引 m 到 n 的数据框,loc、iloc 主要针对行来说的df.loc[:,"列1":"列2"] #返回连续列的所有行df.loc[m:n,"列1":"列2"] #返回连续列的固定行df['列名'][n] #选取指定列的第 n 行df[['列1','列2']] #返回多个指定的列## 数据筛选和排序df[df.列名 < n] #筛选,单中括号用于 bool 值筛选df.filter(regex = 'code') #过滤器,按正则表达式筛选df.sort_values #按某一列进行排序df.sort_index() #按照索引升序排列df['列名'].unique() #列去重df['列名'].nunique() #列去重后的计数df.nlargest(n,'列名') #返回 n 个最大值构成的数据框df.nsmallest(n,'列名') #返回 n 个最小的数据框df.rank #给出排名,即为第几名## 数据增加删除修改df["新列"] = xxx #定义新列df.rename #给列重命名df.index.name = "index_name" #设定或者修改索引名称df.drop #删除行或者列df.列名 = df.列名.astype('category') #列类型强制转化df.append #在末尾追加一行del df['删除的列'] #直接删除一列## 特别的df.列名.apply #按列的函数操作pd.melt #将宽数据转化为长数据(拆分拉长),run 一下下面例子就知道什么意思了pd.merge #两个数据表间的横向连接(内连接,外连接等)pd.concat #横向或者纵向拼接pandas 函数用法示例myseries = pd.series([1,2,3,4], index=['a','b','c','d'])data = {'country' : ['belgium', 'india', 'brazil' ], 'capital': ['brussels', 'new delhi', 'brassilia'], 'population': [1234,1234,1234]}df = pd.dataframe(data, columns=['country','capital','population'])pd.dataframe(np.random.rand(20,5))df = pd.read_csv('data.csv')pd.read_excel('filename')pd.to_excel('filename.xlsx', sheet_name='sheet1')df.quantile([0.25, 0.75]) # 给出每一列中的25%和75%的分位数filters = df.date > '2021-06-1'df[filters] #选出日期在某个日期之后的所有行df.filter(regex='^l') #选出 l 开头的列df.sort_values('列名', ascending= false) #按指定列的值大小升序排列df.rename(columns= {'老列名' : '新列名'}) #修改某个列名df["新列"] = df.a- df.b #定义一个新的列表示为两个的差df.columns = map(str.lower(), df.columns) #所有列名变为小写字母df.columns = map(str.upper(), df.columns) #所有列名变为大写字母df.drop(columns=['列名']) #删除某一列df.drop(['列1', '列2'], axis=1) #含义同上,删除两列myseries.drop(['a']) #删除 series 指定值df.drop([0, 1]) #根据索引删除,双闭区间def fun(x): return x*3df.列名.apply(fun) #把某一列乘 3 倍df.列名.apply(lambda x: x*3) #匿名表达式的写法df = pd.dataframe({'a': {0: 'a', 1: 'b', 2: 'c'},'b': {0: 1, 1: 3, 2: 5}, 'c': {0: 2, 1: 4, 2: 6}})pd.melt(df, id_vars=['a'], value_vars=['b','c']) #melt的使用new=pd.dataframe({'name':'lisa', 'gender':'f', 'city':'北京'},index=[1])df = newdf=df.append(new) #增加一行数据frame = pd.dataframe({'a':[2.3,-1.7,5,3],'b':[6,2.9,-3.1,8]},index=['one','two','three','four'])frame.rank(method="min",ascending=false)#对每一列的数据,根据大小给个排名#merge 表示横向连接df3 = pd.merge(df1,df2,how='inner',on='股票简称') #on表示连接列,how选择连接方式pd.merge(df1,df2,left_on='lkey',right_on='rkey',how='left') #当连接列名不同分别指定#concat 拼接pd.concat([df1,df1]) #纵向连接,当s1和s2索引不重叠时,可以直接拼接pd.concat([df1,df1],axis = 1) #横向连接,默认外连接,以行索引为连接字段

到此这篇关于python pandas常用函数方法总结的文章就介绍到这了,更多相关pandas常用函数方法内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

  • 0
  • 0
  • 0
  • 0
  • 0

更多推荐

Python Pandas常用函数方法总结

本文发布于:2023-06-10 22:50:47,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/620770.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:函数   常用   方法   Python   Pandas

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!