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待整理

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容

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