01
系列回顾
玩转Pandas系列已经连续推送3篇,尽量贴近Pandas的本质原理,结合工作实践,按照使用Pandas的逻辑步骤,系统地并结合实例推送Pandas的主要常用功能,已经推送的3篇文章:
以上4篇总结了Pandas主要的两个数据结构:
Series(一维)和DataFrame(二维),
系统地介绍了创建,索引,增删改查Series, DataFrame等常用操作接口,
总结了Series如何装载到DataFrame中,以及一个实际应用多个DataFrame的实战项目例子。
总结了多层索引,Pivot操作,sort操作等
值得推荐的是,Pandas广泛应用在金融,统计,社会科学,和许多工程领域。Pandas和R语言直接无缝衔接。Pandas是基于Numpy(Numpy基于Python)基础开发,因此能和带有第三方库的科学计算环境很好地进行集成。
02
Pandas核心应用场景
按照使用逻辑,盘点Pandas的主要可以做的事情:
03
处理Missing data
missing data,缺失数据,在数据系统中是比较常见的一个问题,而pandas的设计目标就是让missing data的处理工作尽量轻松。
pandas使用浮点NaN表示浮点和非浮点数组中的缺失数据,它没有什么具体意义,只是一个便于被检测出来的标记而已,pandas对象上的所有描述统计都排除了缺失数据。
下面看下关于missing data处理常用的几个API。
isnull返回一个含有布尔的对象,这些布尔表示哪些是缺失
notnull isnull的否定式
dropna根据各标签中是否存在缺失数据对轴标签进行过滤,返回不为NaN的值,具体里面的参数包括:
DataFrame.dropna(axis=0, how='any',thresh=None, subset=None, inplace=False)
fillna用指定值填充NaN值,DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)
其中,method : {‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None}, default None
axis :
举例说明如何使用,假如有如下一张表 pd_data
调用pd_data.isnull(),返回所有元素是否为null的布尔结果:
调用 pd_data.dropna(),默认值下,axis=0 , how=any,也就是只要每行中有一个元素为NaN,则直接过滤掉此行,返回的结果如下所示:
调用pd_data.fillna(),采用标量值填充,则所有的NaN值都取为1.0,
pd_data4.fillna(1)
采用字典值填充,对应的列取对应字典中的填充值:
pd_data4.fillna({'name':'none','score':60,'rank':'none'})
再说method关键词填充效果,当method设置为 ffill时,填充效果如下所示,取上一个有效值填充到下面行,
原有NaN的表格:
执行如下:
pd_data.fillna(method='ffill')
执行如下:
pd_data.fillna(method='backfill')
04
concatenate操作
concatenate是连接两个及以上的DataFrame的操作,一个简单的concatenate例子,给定两个DataFrame,concatenate它们,
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3'],
'C': ['C0', 'C1', 'C2', 'C3'],
'D': ['D0', 'D1', 'D2', 'D3']},
index=[0, 1, 2, 3])
df2 = pd.DataFrame({'A': ['A4', 'A5', 'A6', 'A7'],
'B': ['B4', 'B5', 'B6', 'B7'],
'C': ['C4', 'C5', 'C6', 'C7'],
'D': ['D4', 'D5', 'D6', 'D7']},
index=[4, 5, 6, 7])
result = pd.concat( [df1,df2] )
df1:
df2:
合并后:
默认axis=0,即沿着行方面连接,如果axis设置为1,会沿列方向扩展,行数为两者间行数的较大者,较小的用NaN填充。
concatenate还可以创建带层级的索引,关于这部分暂不展开介绍。
以上总结了DataFrame在处理空缺值的常用操作,及连接多个DataFrame的concat操作。
2. 图算法(含树)
3. 动态规划
4. LeetCode
5. Python
6. 数据处理三剑客
7. 数学知识
8. 数据预处理
9. 机器学习算法实例大全
10. 深度学习
11. Tensorflow
12. 自然语言处理
13. 上海沙龙
如果文章对您有帮助,欢迎点赞、转发。你的支持=彼此的进步
算法channel∣原创干货分享
领取专属 10元无门槛券
私享最新 技术干货