Pandas使用技巧

推荐阅读:https://www.pypandas.cn/

导入包

import pandas as pd

创建DataFrame

df=pd.DataFrame([])

函数描述:返回空的DataFrame

如果需要新建行或者列,直接指定df[‘A’]=…或者df[‘A’][‘B’]=…

如果该位置所在行或者列不存在,panda会自动创建该行或者该列。

获取行列数

df.shape[0]

函数描述:返回行数

len(df)

函数描述:返回行数

df.shape[1]

函数描述:返回列数

获取重复元素的个数

df.value_counts()

函数描述:返回一个n*1维的array,索引为元素的名称。

索引和列相互转换

df=df.reset_index()

描述:重新生成索引,原索引变为一列

参数:drop=True:不保留原索引。默认为False

df=df.set_index(‘A’)

描述:将A列变为索引

设置列名

使用df.columns=[‘A’,‘B’]

数据读写

df = pd.read_csv(‘filename’,…)

函数描述:读入对应的csv文件,返回结果为FrameData类型

参数表:

sep:指定参数分隔符,默认值为’\t’

delimiter:sep的别名

comment:指定注释标识符,不读取开头为注释标识符的行,默认值为 ‘#’

header:指定列名,默认为0,header=0代表第一行为列名,header=None代表没有表头,全部为数据

index_col:指定数据的行标签,默认为 index_col=0

usecols:选择需要读取的列,可以是索引也可以是列名.比如usecols=(0,1,2,3),选择0123列

skiprows:跳过开头的几行,skiprows=1,表示跳过第一行

nrows:表示只读取前n行的数据,nrows=3表示读取3行

na_values:指定空值

引自http://www.360doc.com/content/20/0620/00/68068867_919603373.shtml

df.to_csv(‘fime_name.csv’,…)

函数描述:将DataFrame写入csv文件

数据定位

df=pd.loc[a,b]

a,b分别代表需要选取的元素的行和列.

a=[1:3]表示选取第1行到第3行

a=[1,2,3,5]表示选取第1,2,3,5行

pd.loc=[:,[1,2,3]]]表示选取123列的全部行

注意loc只能使用标签进行索引.

df1=df.where(cond,…)

描述:返回df中满足cond条件的元素-

参数表:

cond:df中的元素如果满足cond=True,那么返回时会添加该元素

other:df中的元素如果满足cond=False,需要填充为other的值

引自https://blog.csdn.net/brucewong0516/article/details/80226990

遍历数据

df1[‘A’]=df2.apply(f,…)

函数描述:将df2的每列传入自定义函数,将函数返回值赋值给df1的A列
参数表:

f:调用的函数

axis:指定传入的参数为列或者行,默认传入每行

f的参数可以使用f_a=‘A’,f_b=‘B’传入,AB为传入的列名

如果是2选1,可以简单的用匿名函数实现:lambda:x return A if x[‘A’]==1 else B

引自:https://blog.csdn.net/qq_19528953/article/details/79348929

表格拼接

df = pd.merge(left, right,…)

函数描述:两个DataFram拼接,拼接后数行不变,列数扩展

参数表:

left和right:两个不同的DataFrame;

how:连接方式,left:基于左dataframe列的数据合并;right:基于右dataframe列的数据合并;outer:基于列的数据外合并(取并集);inner:基于列的数据内合并(取交集);默认为’inner’。注意有引号

on:指的是用于连接的列索引名称,必须存在于左右两个DataFrame中,如果没有指定且其他参数也没有指定,则以两个DataFrame列名交集作为连接键;

left_on:左侧DataFrame中用于连接键的列名,这个参数左右列名不同但代表的含义相同时非常的有用;

right_on:右侧DataFrame中用于连接键的列名;

left_index:使用左侧DataFrame中的行索引作为连接键;

right_index:使用右侧DataFrame中的行索引作为连接键;

sort:默认为True,将合并的数据进行排序,设置为False可以提高性能;

suffixes:字符串值组成的元组,用于指定当左右DataFrame存在相同列名时在列名后面附加的后缀名称,默认为(’_x’, ‘_y’);

copy:默认为True,总是将数据复制到数据结构中,设置为False可以提高性能;

indicator:显示合并数据中数据的来源情况

引自:
https://blog.csdn.net/gdkyxy2013/article/details/80785361
https://www.cnblogs.com/keye/p/10791705.html

df=df.append(df2)

函数描述:将df和df2按列标签拼接起来,拼接后表的列数不变,行数扩展。

要求df和df2具有相同的标签。

数据清洗

df=df.fillna(value=a)

函数描述:将nan的值填充为指定的值

参数:value=1,将NaN填充为1

df = df.drop_duplicates(subset=[‘UNIT_ID’],…)

函数描述:去掉UNIT_ID列中重复的行

参数表:

subset:一个列表,里面是需要去重的列的标签

keep:三个可选值: keep=False时,就是去掉所有的重复行 ,keep=‘first’时,就是保留第一次出现的重复行 ,keep='last’时就是保留最后一次出现的重复行。 默认值为first

引自:
https://www.jb51.net/article/155577.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值