导入包
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