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

接上:深度学习入门 之 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学习笔记(一)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敲不好代码的小透明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值