Pandas常用功能总结

1.读取.csv文件

df2 = pd.read_csv(‘beijingsale.csv‘, encoding=‘gb2312‘,index_col=‘id‘,sep=\t‘,header=None)

参数解析见:https://www.cnblogs.com/datablog/p/6127000.html

index_col用于指定用作行索引的列编号或者列名,sep用于指定文件的分隔符(默认是以,作为分隔符),header=None 不用文件的的第一行作为列索引

文件读取之后生成的是一个DataFrame

文件的输出

把DataFrame中的值输出到csv文件中

Index=False指定输出文件没有行索引,header=False指定输出文件没有列索引

2.复制DataFrame中的某些列

agg_df2=agg_df[[‘USRID‘,‘V1‘]].copy()

对原来DataFrame中的[‘USRID‘,‘V1‘]进行复制,生成一个只包含[‘USRID‘,‘V1‘]的新DataFrame

3.为DataFrame中的某一列赋值

data[‘num‘]=1  //索引名为num的列,里面的元素将全部变为1

4.把某一列设置为索引

train_data=train_data.set_index(‘USRID‘)

5.向DataFrame中添加列

df[‘sale_time‘] = df2[‘dealDate‘]注意df与df2的索引要相等

6.删除DataFrame中某一列

df.drop([‘sale_time‘], axis=1, inplace=True)注意这里的axis=1表明删除DataFrame中的列,axis=0是删除某一行。inplace=True表明操作后取代原来的DataFrame

7.取出DataFrame中某一列满足某一条件的所有行

aa=frame[frame[‘a‘]==1] #frame[‘a‘]==1返回的是True,False值再进一步根据此进行选择

8.把DataFrame的值作为训练数据向ndarray的转换

data=np.array(frame)

9.pd.merge()的合并操作

一般用于一个读取的是数据另一个文件读取的是标签,按照用户唯一的编号进行合并

frame = pd.DataFrame({"a":[9,2,5,1],"b":[4,7,-3,2],"c":[6,5,8,3]})
frame2 = pd.DataFrame({"a":[9,5,2,1],"d":[4,7,-3,2]})

frame3=pd.merge(frame,frame2,on=["a"])

默认的是inner内连接,on指定按哪一或哪些列进行合并,内连接一般用于合并的两个DataFrame所指定的合并列大小相同的情况

Pandas的merge其how参数解析

具体参考:

https://www.cnblogs.com/yuanninesuns/p/7942867.html

Pandas的merge用于对两个DataFrame进行

How参数可取四个值,left,right,inner,outer,

Left即为以左边的df其on的那一列作为最后连接的键值,right是以右边的,默认的是inner即为df1和df2都存在的才留下来,以为on那一列取交集,outer是对df1和df2的on那一列存在的都留下来,是对on那一列取并集。

10.pd.sort_values()的用法

它是按照某一数值列对整个DataFrame进行排序,注意有个inplace参数默认为False设置为True则直接取代原来的,用法如下:

df.sort_values(by=‘col2‘,inplace=True)

11.pd.reset_index()的用法

其作用是重置索引使得索引从0开始,一般用于sort_values()之后,因为排序之后索引会乱,用法如下:

df.reset_index(inplace=True,drop=True)

注意这两个参数,设置inplace=True接替代原来的DataFrame,设置drop=True则把原来的索引删除,否则原来的索引会以index为列名成为DataFrame中的一列。

12.去除重复值drop_duplicates()的用法

用于去除DataFrame中的重复值,具体用法如下:

df.drop_duplicates([‘col1‘,‘col2‘],inplace=True,keep=‘first‘)

第一个参数的设定[‘col1‘,‘col2‘]即为删除这两列的值都相等的数据,这时需要注意keep这个参数,其默认为first即为若相等则保留第一个元素,若把其设置为last则为若相等则保留最后一个元素,若设置为None则为存在相等的都删除,inplace=True则为直接替代原来的DataFrame

13.删除DataFrame()中所有存在空值的行

DataFrame.dropna()

14. Pandas的head()和tail

head()默认是取前五行元素,head(n)取前n行

tail()默认是取后五行元素,tail(n)取后n行

15. pandas的groupby和agg以及reset_index和sort_values函数

例如:

import pandas as pd
data=[
    [1,2,3,4],[1,4,7,8],[2,8,9,4]
]
df=pd.DataFrame(data,columns=[‘a‘,‘b‘,‘c‘,‘d‘])
df2=df[[‘a‘,‘b‘,‘c‘]]
print(df2)
print(df2.groupby(‘a‘)[‘b‘].agg(‘sum‘).reset_index().sort_values(‘a‘))

groupby是按照某些列进行分组把分组列相同的归为一组,注意它返回的不再是DataFrame类型的数据

agg函数是应用例如sum,mean,std这些聚合函数

reset_index可以还原索引,不管原来的索引是什么,从新变为默认的整型索引,它一般和agg()连用

sort_values()按值进行排序,其中有个axis参数默认是0即为按列进行排序,若axis参数的值设为1则是按行进行排序。

上面的案例是按照a列进行分组取分组后的a,b列,对每个分组的b列执行求和操作,然后重置索引,最后再按照a列的值进行排序操作

16.Pandas读取数据之后如何根据标签列快速判断数据是否均衡?

print(train_data[‘Survived‘].value_counts())

17.Pandas中填充DataFrame的nan值

df=DataFrame(np.arange(16).reshape((4,4)),columns=[‘a‘,‘b‘,‘c‘,‘d‘],index=[‘one‘,‘two‘,‘three‘,‘four‘])
df.ix[1]=np.nan
print df
print df.fillna(df.mean())

df.mean()是把nan值用每一列的均值填充,例如这列填充two行使用one,three,four行的值之和除以3.

18.Pandas中loc iloc ix的用法以及区别

1)loc()按照行索引选取行

例如:

data = [[1,2,3],[4,5,6]]
index = [‘e‘,‘f‘]
columns=[‘a‘,‘b‘,‘c‘]
df = pd.DataFrame(data=data, index=index, columns=columns)
print(df.loc[e])

输出行索引为e的这一行的值

若为:

data = [[1,2,3],[4,5,6]]
index = [1,2]
columns=[‘a‘,‘b‘,‘c‘]
df = pd.DataFrame(data=data, index=index, columns=columns)
print(df.loc[1])

这里的行索引只能用1,2不能再用e,f

获取多行索引以上两种情况用如下方法:

df.loc[1:]

df.loc[‘e’:]

获取某些行某些列

df.loc[1,[‘b‘,‘a‘]]

2)iloc()通过行号以及列号的索引获取数据

例如:

data = [[1,2,3],[4,5,6]]
index = [‘e‘,‘f‘]
columns=[‘a‘,‘b‘,‘c‘]
df = pd.DataFrame(data=data, index=index, columns=columns)

df.iloc[1]获取行号为1的数据
print(df.iloc[1,[1]])获取行列号都为1的数据。

print(df.iloc[:,[1]])获取所有行列号为1的数据。

注意:这个函数只能通过行列号索引获取数据

3)ix()是以上两者的结合,获取行列时既可以通过行列的索引也可以通过行列的标签。

df.ix[:,df.ix[0]>2.5]

先选取第0行的值大于2.5的列,再选取所有行这些列的元素

19.Pandas中基于DataFrame的apply()

Apply()即为在DataFrame的行、列以及整个DataFrame上应用某一函数。具体见http://blog.csdn.net/y12345678904/article/details/72757912

# Define function to extract titles from passenger names

def get_title(name):

title_search = re.search(‘ ([A-Za-z]+)\.‘, name)

# If the title exists, extract and return it.

if title_search:

return title_search.group(1)

return ""# Create a new feature Title, containing the titles of passenger namesfor dataset in full_data:

dataset[‘Title‘] = dataset[‘Name‘].apply(get_title)

例如对pandas的某一文本列进行处理

def word_cut(df):
    return ‘ ‘.join([con for con in jieba.cut(‘‘.join(list(df[‘content‘]))) if not con in stopwords])
df[‘content‘]=df.apply(word_cut,axis=1)

给其传的是整个df,其主要目的是对df[‘content‘]中的内容进行分词处理,因为jieba.cut()接收的数据是字符串,所以要做相应的转换。

原文地址:https://www.cnblogs.com/dyl222/p/10549364.html

时间: 2024-10-09 18:10:14

Pandas常用功能总结的相关文章

pandas常用功能快速查询

#-*- coding: utf-8 -*- ''' 作者:时亚东 功能:pandas应用 版本: 时间:2019-10-01 ''' #模块导入 import pandas as pd import numpy as np import matplotlib.pyplot as plt '''Serise数据类型——一维数据''' a = pd.Series([1, 0.3, np.nan]) b = pd.Series(np.array([1, 2, 3])) print('a\n',a)

pandas 常用功能

导入数据 pd.read_csv(filename):从CSV文件导入数据 pd.read_table(filename):从限定分隔符的文本文件导入数据 pd.read_excel(filename):从Excel文件导入数据 pd.read_sql(query, connection_object):从SQL表/库导入数据 pd.read_json(json_string):从JSON格式的字符串导入数据 pd.read_html(url):解析URL.字符串或者HTML文件,抽取其中的ta

NumPy和Pandas常用库

NumPy和Pandas常用库 1.NumPy NumPy是高性能科学计算和数据分析的基础包.部分功能如下: ndarray, 具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组. 用于对整组数据进行快速运算的标准数学函数(无需编写循环). 用于读写磁盘数据的工具以及用于操作内存映射文件的工具. 线性代数.随机数生成以及傅里叶变换功能. 用于集成C.C++.Fortran等语言编写的代码的工具. 首先要导入numpy库:import numpy as np A NumPy函数和属性: 类型

js常用功能代码

js常用功能代码(持续更新): 1,--折叠与展开 <input id="btnDisplay" type="button" class="baocun2" value="添加" onclick="changeDisplay()" /> <script type="text/javascript"> function changeDisplay() { var h

SVN的安装与常用功能使用以及解决安装配置过程中的一些错误

SVN简介: SVN是Subversion的简称,是一个开放源代码的版本控制系统,将工程代码集中在服务器上进行一个统一的集中式管理,从而能够方便地控制代码版本,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控制服务已从CVS迁移到Subversion.说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的,而且通过使用SVN开发人员之间[学Java,到凯哥学堂kaige123.com]能够很方便的更新.提交工程代码,并且如果工程的版本有冲突还

WebStorm常用功能的使用技巧分享

WebStorm 是 JetBrain 公司开发的一款 JavaScript IDE,使用非常方便,可以使编写代码过程更加流畅. 本文在这里分享一些常用功能的使用技巧,希望能帮助大家更好的使用这款强大的 JavaScript 开发工具. 代码编辑 代码跳转: Ctrl + 左键 或者 Ctrl + B,可以跳转到函数或者变量的声明位置 调用位置: Alt + F7,查找调用者 自动补全: 最好是修改一下响应时间,Settings->Editors->General->Code Compl

项目中常用功能,如:流媒体、健康数据(步数等)等-b

整理iOS开发中使用的各种流媒体和常用的高级功能.由于时间关系,目前只写了一部分功能,全部都采用的是系统方法,没用第三方,截图如下: screen1.png screen2.png 个人比较懒,不爱多写文字,直接上代码,哈哈. 视频 系统用AVFoundation与MediaPlayer框架实现播放视频的方案.其中AVFoundation扩展性好,都需自定义功能,而MediaPlayer集成简单,但是样式不可扩展. 1.AVFoundation使用AVPlayer播放视频,它属于view的lay

html(三) -- 常用功能标签

媒体标签 <embed></embed> 属性:        hidden : 设置隐藏插件是否隐藏.        src :用于指定音乐的路径 超链接标签 <a></a> 属性: href  : 用于指定链接的资源.常用协议:file:. mailTo:. http:      target: 设置打开新资源的目标.属性对应的值:_Blank 在独立的窗口上打开新资源   _self 在当前窗口打开新资源. a标签的原理:    1. a标签的href

IOS开发-OC学习-常用功能代码片段整理

IOS开发-OC学习-常用功能代码片段整理 IOS开发中会频繁用到一些代码段,用来实现一些固定的功能.比如在文本框中输入完后要让键盘收回,这个需要用一个简单的让文本框失去第一响应者的身份来完成.或者是在做与URL有关的功能时,需要在Info.plist中添加一段代码进而实现让网址完成从Http到Https的转换,以及其他的一些功能. 在从一个新手到逐渐学会各种功能.代码.控件.方法如何使用的过程中,也在逐渐积累一些知识,但是一次总不会把这些东西都深刻记住并完全理解.所以在这儿记录下这些东西,用来