Pandas学习的一些链接统计
python学习 . 2020/04/07发布 . shanyonggang_web . 我要评论 . 297阅读

链接汇总

  1. Pandas学习精选资料
  2. 【十分钟AI知识点】pandas最详细教程
  3. 从Excel到Python:最常用的36个Pandas函数!最完整的Pandas教程!

知识点汇总 

主要总结一些日常遇到的pandas的一些用法,包括基本知识和高级知识,如下:

基本知识

删除重复值(删除city列的重复值)

df['city'].drop_duplicates()

重命名(将列名category改成category-size)

df.rename(columns={'category': 'category-size'})

更改数据类型(price数据改成int类型)

df['price'].astype('int')

数值修改和替换(将值sh改成shanghai)

df['city'].replace('sh', 'shanghai')

高级用法

数据表合并

# 数据表匹配合并
# 两个数据表中共有的数据匹配到一起生成新的数据表
df_inner=pd.merge(df,df1,how='inner')

# 其他形式
df_left=pd.merge(df,df1,how='left')
df_right=pd.merge(df,df1,how='right')
df_outer=pd.merge(df,df1,how='outer')

设置索引

df_inner.set_index('id')

排序

df_inner.sort_values(by=['age'])
df_inner.sort_index()

数据分组

# price大于3000的,group定义为high,否则定义为low
df_inner['group'] = np.where(df_inner['price'] > 3000,'high','low')
#对复合多个条件的数据进行分组标记(city为beijing且price大于4000的sign定义为1)
df_inner.loc[(df_inner['city'] == 'beijing') & (df_inner['price']>= 4000), 'sign']=1

数据提取

#按索引提取区域行数值
df_inner.loc[0:5]
#使用iloc按位置区域提取数据
df_inner.iloc[:3,:2]
#使用iloc按位置单独提取数据(前面方括号中的0,2,5表示数据所在行的位置,后面方括号中的数表示所在列的位置。)
df_inner.iloc[[0,2,5],[4,5]]
#使用ix按索引标签和位置混合提取数据
df_inner.ix[:'2013-01-03',:4]
#按条件提取(先判断city列里是否包含beijing和shanghai,然后将复合条件的数据提取出来。)
df_inner.loc[df_inner['city'].isin(['beijing','shanghai'])]

数据筛选

#使用“与”条件进行筛选
df_inner.loc[(df_inner['age'] > 25) & (df_inner['city'] == 'beijing'),['id','city','age','category','gender']]
#使用“或”条件筛选
df_inner.loc[(df_inner['age'] > 25) | (df_inner['city'] == 'beijing'), ['id','city','age','category','gender']].sort(['age'])
#使用“非”条件进行筛选
df_inner.loc[(df_inner['city'] != 'beijing'), ['id','city','age','category','gender']].sort(['id'])

数据汇总

#对特定的ID列进行计数汇总
df_inner.groupby('city')['id'].count()
#对city字段进行汇总并计算price的合计和均值。
df_inner.groupby('city')['price'].agg([len,np.sum, np.mean])

数据透视

#设定city为行字段,size为列字段,price为值字段。分别计算price的数量和金额并且按行与列进行汇总。
pd.pivot_table(df_inner,index=["city"],values=["price"],columns=["size"],aggfunc=[len,np.sum],fill_value=0,margins=True)

 

 


  • 有疑问请在下方评论区留言,我会尽快回复。
  • Email私信我: 511248513@qq.com 或添加博主 微信
本文作者:shanyonggang_web
发布时间:2020年4月7日 08:56
许可协议: 署名-非商业性使用 4.0 国际许可协议
知识共享许可协议     转载请保留原文链接及作者
正在加载今日诗词....
您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请狠狠点击下面的


登录 后回复

当前暂无评论,点击登录来做第一个吃螃蟹的人吧!