python----pandas

mean()平均值 median()中位数 max()最大值 min()最小值 sum()求和 std()标准差

Series类型独有的方法: argmax()最大值的位置 argmin()最小值的位置

Pandas中describe()函数

count:数量统计,此列共有多少有效值
unipue:不同的值有多少个
std:标准差
min:最小值
25%:四分之一分位数
50%:二分之一分位数
75%:四分之三分位数
max:最大值
mean:均值

head前几行 tail 后几行

value_counts()

value_counts()是一种查看表格某列中有多少个不同值的快捷方法,并计算每个不同值有在该列中有多少重复值。
value_counts()是Series拥有的方法,一般在DataFrame中使用时,需要指定对哪一列或行使用

users.age.value_counts()

Series排序

df["age"].sort_values(ascending = False)

agg

s=users.groupby(by=['occupation',]).age.agg(["max","min","mean"])
s=users.groupby(by=['occupation',]).agg({"age":["max","min","mean"]})

行列调换

df.stack(level=0)
df.unstack(level=-1)

map

# 单列
df1["Mjob"].map(lambda x: x.capitalize())

apply

# 两列相加 单列或者多列
df[['data1','data2']].apply(lambda x : x.sum(), axis = 1)

applymap

# 对整个DataFrame
df.applymap(函数)

set_index

把某一列设置为索引 可以设置复合索引
DataFrame.set_index(keys,drop=True,append=False,inplace=False, verify_integrity=False)

drop:默认为true,表示是否删除列作为新索引。
append:是否增加列到原来的索引上。
inplace:是否创建一个新的dataframe

# data
     a    b  c    d
0  bar  one  z  1.0
1  bar  two  y  2.0
2  foo  one  x  3.0
3  foo  two  w  4.0

data.set_index(‘c‘, inplace=Ture)
data.set_index([‘a‘, ‘b‘])
# data

     a    b    d
c               
z  bar  one  1.0
y  bar  two  2.0
x  foo  one  3.0
w  foo  two  4.0

reset_index

参考

evel:数值类型可以为:int、str、tuple或list,默认无,仅从索引中删除给定级别。默认情况下移除所有级别。控制了具体要还原的那个等级的索引 。

drop:当指定drop=False时,则索引列会被还原为普通列;否则,经设置后的新索引值被会丢弃。默认为False。

inplace:输入布尔值,表示当前操作是否对原数据生效,默认为False。

col_level:数值类型为int或str,默认值为0,如果列有多个级别,则确定将标签插入到哪个级别。默认情况下,它将插入到第一级。

col_fill:对象,默认‘’,如果列有多个级别,则确定其他级别的命名方式。如果没有,则重复索引名。

dataframe 合并

参考

一.concat

pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,
          keys=None, levels=None, names=None, verify_integrity=False,
          copy=True)

1.axis 合并的方向

axis理解
axis=0将最开外头的括号去除,看成一个整体,在这个整体上进行运算
axis=1将第二个括号去除,看成一个整体,在这个整体上进行运算

axis=0

2.join 默认值:join = 'outer'

非合并方向的行/列名称:取交集(inner),取并集(outer)

3.join_axes 默认值:join_axes=None,取并集

join_axes

二.append

append(self, other, ignore_index=False, verify_integrity=False)

竖方向合并df,没有axis属性 会创建副本 相当于pd.concat([df1,df2])

三 merge

pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None,
         left_index=False, right_index=False, sort=True,
         suffixes=('_x', '_y'), copy=True, indicator=False,
         validate=None)
原始合并dataframe

pd.merge(left, right) 会按照left,right的共同列进行合并(只保留有共同列项并且值相等行(即交集)),如无共同列会报错

1.on 指定合并的列

image.png

2.how

取值范围:'inner', 'outer', 'left', 'right' 默认值 how ="inner"
'inner':共同列的值必须完全相同:


inner

'outer’:共同列的值都会保留,left或right在共同列上的差集,会对它们的缺失列项的值赋上NaN:


outer

‘left’:根据左边的DataFrame确定共同列的保留值,右边缺失列项的值赋上NaN:
left

‘right’:根据右边的DataFrame确定共同列的保留值,左边缺失列项的值赋上NaN:
right

3.indecator

indecator

空值处理

df.dropna()

axis:维度,axis=0表示index行,axis=1表示columns列,默认为0
how:"all"表示这一行或列中的元素全部缺失(为nan)才删除这一行或列,"any"表示这一行或列中只要有元素缺失,就删除这一行或列
thresh:一行或一列中至少出现了thresh个才删除。
subset:在某些列的子集中选择出现了缺失值的列删除,不在子集中的含有缺失值得列或行不会删除(有axis决定是行还是列)
inplace:刷选过缺失值得新数据是存为副本还是直接在原数据上进行修改。

DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)

df.fillna

DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)
函数作用:填充缺失值
value:需要用什么值去填充缺失值
axis:确定填充维度,从行开始或是从列开始
method:ffill:用缺失值前面的一个值代替缺失值,如果axis =1,那么就是横向的前面的值替换后面的缺失值,如果axis=0,那么则是上面的值替换下面的缺失值。backfill/bfill,缺失值后面的一个值代替前面的缺失值。注意这个参数不能与value同时出现
limit:确定填充的个数,如果limit=2,则只填充两个缺失值。

DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)

df.isnull

判断是不是空值

df.replace(to_replace,value)

前面是需要替换的值,后面是替换后的值。

把df里的0替换成Nan
df.replace(0,np.nan)
df = df.set_index("Date") # 设置所以你为”Date“列
df.index = pd.to_datetime(df.index) # 把df的索引改为时间类型
df = df.resample("M").sum()  #  按照新的索引按照月重新采样并求和

df.drop() df.resample pd.get_dummies待整理

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 写在前面,我也是一名python学习小白,从最近开始学习Python,由于之前没有编程基础,学习起来比较费劲...
    Gabrielff阅读 381评论 0 2
  • 写在前面的话 Pandas是专门做数据处理和分析的,拥有许多各种复杂的函数。Pandas功能强大,支持类似于SQL...
    四毛m阅读 2,093评论 0 7
  • 一、Series数列 SeriesSeries是一种类似与一维数组的对象,由下面两个部分组成:values:一组数...
    SlashBoyMr_wang阅读 1,229评论 1 4
  • 介绍 在Python中,pandas是基于NumPy数组构建的,使数据预处理、清洗、分析工作变得更快更简单。pan...
    无味之味阅读 234,640评论 2 73
  • 在Python中,pandas是基于NumPy数组构建的,使数据预处理、清洗、分析工作变得更快更简单。pandas...
    g_ices阅读 352评论 0 1