pandas

Posted xcxy-boke

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pandas相关的知识,希望对你有一定的参考价值。

 创建对象:

1、传入array,设置index和columns。

df = pd.dataFrame(np.random.randn(6,4),index = index,columns = list(ABCD))

 2、传入dict,键名当作列名。

df = pd.DataFrame({A:1,B:foo})

 

 查看数据:

 1 # 索引
 2 df.index
 3 # 列名
 4 df.colums
 5 # 数据
 6 df.values
 7 # 数据统计
 8 df.describe()
 9 # 按轴排序,axis = 1为列,0为行
10 df.sort_index(axis = 1,ascending = False)
11 # 按值排序
12 df.sort_values(by = B)

 

 

选择:

# 直接加列名或者列名列表
df[A]
# 切片,可数字切片或者index切片。
df[0:3]
df[A:C]
# bool值,可列表或者矩阵,如果是列表则根据行来显示,如果是矩阵则返回矩阵,false值则是NaN
df[df[A] > 0]
# .loc,第一个值是行号,第二个值为列名
df.loc[20130102:20130104,[A:B]]
# .iloc,俩个都是位置参数
df.iloc[[1,2,4],[0,2]]
# isin()方法过滤,包含在集合里的则返回True
df.[df[A].isin([1,2])]

 

缺失值处理:(在pandas中,使用np.nan来代替缺失值,这些值将默认不会包含在计算中)

# 去掉包含缺失值的行
df.dropna(how = any)
# 对缺失进行填充
df.fillna(value = 5)

 

Apply:

DataFrame.apply(self,func,axis = 0,broadcast = None,raw = False,reduce = None,result_type = None,args =(),** kwds)

func:函数
axis:0:将函数应用于每一列;1:将函数应用于每一行
args:除数组/系列外,还传递给func的位置参数
** kwds:作为关键字参数传递给func的其他关键字参数

 

统计类别个数:

df[A].value_counts()

 

合并:

 1 # concat,沿特定轴将pandas对象与其他轴上的可选设置逻辑连接起来
 2 pandas.concat(objs,axis = 0,join =outer,join_axes = None,ignore_index = False,keys = None,level = None,names = None,verify_integrity = False,sort = None,copy = True )
 3 objs:对象(包含数据框的list)
 4 axis:0:行;1:列
 5 join:outer:全部;inner:重合部分
 6 ignore_index:忽略的字段或者是index
 7 
 8 # join,类似于数据的join
 9 DataFrame.merge(self, right, how=inner, on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=(_x, _y), copy=True, indicator=False, validate=None)
10 self:左侧的pandas
11 right:右侧的pandas
12 how:inner,outer,left,right
13 on:用于连接的列名
14 left_on:左侧连接的列
15 right_on:右侧连接的列
16 left_index:左侧的行索引作为连接列;用了这俩个参数则是index连接
17 right_index:右侧的行索引作为连接列
18 sort:根据连接键排序
19 
20 # append,将其他行附加到调用方的末尾,并返回一个新对象。
21 DataFrame.append(self, other, ignore_index=False, verify_integrity=False, sort=None)
22 other:pandas对象
23 ignore_index:是否忽略原来的index
24 verify_integrity:创建具有重复项的索引时引发ValueError

 

分组:

df.group_by([A,B]).sum()

 

改变形状:

stack:列 -> 行

unstack:行 -> 列

数据透视表:

1 pandas.pivot_table(data, values=None, index=None, columns=None, aggfunc=mean, fill_value=None, margins=False, dropna=True, margins_name=All, observed=False)
2 data:pandas对象
3 values:汇总的列
4 index:行
5 columns:列
6 aggfunc:汇总函数,如果是dict类型则键名是列名对应的值是函数
7 fill_value:用替换缺失值的值
8 margins:添加所有行/列(小计/总计)
9 dropna:是否排除Nan

 

读取csv文件:

pd.read_csv(..csv,sep = ;,encoding = latin1,parse_dates = [Date],dayfirst = True,index_col = Date)
sep:分隔符
encoding:编码
parse_dates:解析日期的字段
dayfirst:将日放在最前面
index_col:索引字段
na_values:定义Nan的值
dtype:指定处理类型

 

绘图:

# pandas自带画图方法
df[A].plot()

 

根据日期得到日和星期:

df.index.day
df.index.weekday

以上是关于pandas的主要内容,如果未能解决你的问题,请参考以下文章

text [检查特定的数据片段]取自论文但有意思应用。 #python #pandas

Python:用于元组的 Pandas DataFrame

pandas 求两个时间差, 转化秒,判断时间差是否大于阈值

将pandas列中的列表列表转换为字符串

微信小程序代码片段

VSCode自定义代码片段——CSS选择器