learn pandas基础操作

整理的这些东动为的是让自己加深印象,就像一本字典一样可以随时查阅吧。没别的意思



df.isnull()   输出的是布尔值

df.isnull().sum()  每一列的空值的数量加总     相当于  df.count()

df.isnull().sum().sum()   全部的数据的空值数量

df.notnull()    输出的也是布尔值,,和最上面的那个相反

dropping missing     丢掉缺失值

df.c4[df.c4.notnull()]    选择c4列的非空值  df.c4.dropna()   效果一样 但原数组不改变,只复制一份值

df.dropna(how = 'all')          df.dropna(how='all', axis=1)    默认是对行进行操作

df2.dropna(how='any', axis=1)

df.dropna(thresh=5, axis=1)  设定删除的阈值  Na Ns don't count as an item in calculating

Filling in missing data   填充缺失值                 空值不再计算内容的范围里面

filled = df.fillna(0)         用0填充所有缺失值

df.fillna(0, limit=2)     填充前面2个

df.c4.fillna(method="ffill")  向前填充, 最后一个为空值

  pd.ffill() and pd.bfill()   和前面等价

fill_values = pd.Series([100, 101, 102], index=['a', 'e', 'g'])

df.c4.fillna(fill_values)    用标签填充

df.fillna(df.mean())           均值填充

s = pd.Series([1, np.nan, np.nan, np.nan, 2])

s.interpolate()  线性插入支        如(2.0 – 1.0)/(5-1) = 0.25

ts.interpolate(method="time")    s.interpolate(method="values")    也一样

Handling duplicate data         处理重复的数据

data.duplicated()                   返回的是布尔值。是否是重复数据

data.drop_duplicates()          留的是每行的第一个重复值

data.drop_duplicates(take_last=True)    留的是最后一个

data.drop_duplicates(['a', 'b'])   对特定的列筛选

Transforming Data         数据转换

x.map(y)                              映射          

s.replace(2, 5)      在Series中表示标签为2的值  替换  为5

s.replace({0: 10, 1: 100})        用字典替换

df.replace({'a': 1, 'b': 8}, 100)   在DataFrame中,表示a中的1,b列中的8 替换为100

s = pd.Series(np.arange(0, 5))     s.apply(lambda v: v * 2)

df.apply(lambda col: col.sum())    计算每列的和

df.apply(lambda row: row.sum(), axis=1)     同理 行

df['interim'] = df.apply(lambda r: r.a * r.b, axis=1)     新列 并创建值

df['result'] = df.apply(lambda r: r.interim + r.c, axis=1)

df.a = df.a + df.b + df.c  不创建新列,在原列的基础上增加数学操作运算

df.dropna().apply(lambda x: x.sum(), axis=1)  除空值外的行的和

    use applymap to format all items of the Data Frame

df.applymap(lambda x: '%.2f' % x)   整个数据都转化为保留2位小数的浮点数 对整体操作

Combining and Reshaping   合并与重组

pd.concat(objs, axis=0,join='outer', join_axes=None, ignore_index=False,      keys=None, levels=None, names=None, verify_integrity=False) 所有参数

pd.concat([df1, df2])   注意索引是源数列的  没有合并

c = pd.concat([df1, df2], keys=['df1', 'df2'])     指定属于哪张表

pd.concat([df1, df2], axis=1)    纵向合并  axis指定轴向

pd.concat([df1, df3], axis=1)

pd.concat([df1, df3], axis=1, join='inner') 

Pivoting     视图

加上join参数的属性,如果为’inner’得到的是两表的交集,如果是outer,得到的是两表的并集。In[28]: pieces = {'x': df1,'y': df2,'z': df3}

In[29]: result = pd.concat(pieces)   传入字典增加分组建

df1.append(df2, ignore_index=True)

sensor_readings[sensor_readings['axis'] == 'X']   只选择一列的某值显示





和透视的功能差不多,不过只是透视的一部分,stack表示把列变为索引,另外一个相反

df = pd.Data Frame({'a': [1, 2]}, index={'one', 'two'})

stacked1 = df.stack()

Grouping and Aggregating  Data 这个知道有用,但还没用过过

The split, apply, and combine (SAC)   pattern   分,聚  和

grouped = sensors.groupby('sensor')   返回一个DataFrame  不返回值


grouped.size()      grouped.count()    grouped.get_group('accel')

mcg = sensors.groupby(['sensor', 'axis'])     两列同时操作

print_groups(mcg)         mcg.describe()    不同类别的描述

mig_l12.agg(np.mean)    求均值,分组后的

sensors.groupby(['sensor', 'axis'],as_index=False).agg(np.mean)

grouped.transform(lambda x: x + 10)

filled_Na Ns = grouped.transform(lambda x: x.fillna(x.mean()))


f = lambda x: x.Values.count() > 1

df.groupby('Label').filter(f)    必须指定列

f = lambda x: x.Values.isnull().sum() == 0

df.groupby('Label').filter(f)   意思都懂的  就是字面意思

f = lambda x: x.Values.count() > 1

df.groupby('Label').filter(f, dropna=False)

bins = pd.cut(dist, 5)    切分数据

pd.cut(dist, 5, right=False).categories

ranges = [6, 12, 18, 35, 50]

agebins = pd.cut(ages, ranges)

agebins.describe()

qbin = pd.qcut(dist, 5)

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

推荐阅读更多精彩内容