深度学习入门 之 Pandas学习笔记(二)

深度学习入门 之 Pandas学习笔记(二),第1张

接上:深度学习入门 之 Pandas学习笔记(一)

上个笔记主要学习的内容是pandas对数据的选择和修改 *** 作。


这篇笔记将介绍pandas对数据处理的一些方法。


目录


一、 Pandas处理丢失数据

1.1 丢失非数据行(nan)【dropna()】

1.2 给nan数据填充值 【fillna()】

1.3 判断是否含nan 【isnull()针对单个数据、np.any(t.isnull())针对整个数组】


二、 Pandas导入导出

2.1 数据读取

2.2 数据存储


三、 Pandas合并

3.1 concatenating方式 

3.2 append方式

3.3  merge方式



一、 Pandas处理丢失数据 1.1 丢失非数据行(nan)【dropna()】

axis=0表示对行选择丢失,axis=1表示对列选择丢失。


how='any'表示只要行或列中有一个nan则丢失该行或者该列。


how='all'表示要满足行或列所有数据均为nan才丢弃。


test1 = pd.DataFrame({'A': [1, 2, 3, 4],
                      'B': [0, np.nan, 3, 7],
                      'C': [4, 6, np.nan, 9]})
print (test1)
# 丢掉含有nan的行 (含一个就丢)
print (test1.dropna())
# 所有均为nan才会丢 axis默认为0
print (test1.dropna(axis=0, how='all'))

# 丢掉含有nan的列 (含一个就丢)
print (test1.dropna(axis=1))
# 一列中所有均为nan才会丢
print (test1.dropna(axis=1, how='all'))

1.2 给nan数据填充值 【fillna()】

value参数可以指定赋值内容。


test1 = pd.DataFrame({'A': [1, 2, 3, 4],
                      'B': [0, np.nan, 3, 7],
                      'C': [4, 6, np.nan, 9]})
print (test1)
# 给数值为nan的元素重新赋值
print (test1.fillna(value=999))

1.3 判断是否含nan 【isnull()针对单个数据、np.any(t.isnull())针对整个数组】
# 判断nan  输出数组 每个数据都true or false
print (test1.isnull())
# 针对整个数组  最终输出 true or false
print (np.any(test1.isnull()))

二、 Pandas导入导出 2.1 数据读取

可读取多种类型文件。


可视化处理数据的话建议CSV格式,因为可以使用excel打开……

2.2 数据存储

对应也可存储多种类型文件。



三、 Pandas合并 3.1 concatenating方式 

可横向可竖向,可inner可outer

竖着排序会出现a b c d e五列,对于不存在的数会用nan填充。


水平横着排序直接a b c d b c d e列序号。


另外还有join、join_axes参数,其中join可以取inner(仅保留相同列)和outer值。


join_axes可以指定以哪一个数组index为参照,不写的话默认每个数组都会考虑,取并集。


res = pd.concat([t1, t2], axis=1, join_axes=[t1.index])
t1 = pd.DataFrame(np.arange(12).reshape((3, 4)), columns=['a', 'b', 'c', 'd'])
t2 = pd.DataFrame(np.arange(12, 24).reshape((3, 4)), columns=['b', 'c', 'd', 'e'])
print (t1)
print (t2)
# 按行合并  竖着合并
res = pd.concat([t1, t2], axis=0, ignore_index=True)
print (res)
# 按列合并  横着合并
res = pd.concat([t1, t2], axis=1)
print (res)
3.2 append方式

只能竖向且column有要求(一致)

# append合并 可一次性合并多个 column一致
res = t1.append([t1, t2], ignore_index=True)
print (res)
3.3  merge方式

可以on指定哪些列仅出现一次,并且给其他相同列名通过加后缀区分。


t1 = pd.DataFrame(np.arange(12).reshape((3, 4)), columns=['a', 'b', 'c', 'd'], index=['K0', 'K1', 'K2'])
t2 = pd.DataFrame(np.arange(1, 13).reshape((3, 4)), columns=['b', 'c', 'd', 'e'], index=['K1', 'K2', 'K3'])
print (t1)
print (t2)

# merge合并 默认inner 很像自然连接
res = pd.merge(t1, t2, on=['b', 'c', 'd'])
print (res)
# 借助indicator参数可在合并时不重名
res2 = pd.merge(t1, t2, on='b', suffixes=['_left', '_right'])
print (res2)

 暂时完结~

推荐阅读:深度学习 之 Matplotlib学习笔记(一)

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/580965.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-11
下一篇 2022-04-11

发表评论

登录后才能评论

评论列表(0条)

保存