栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

pandas处理数据丢失

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pandas处理数据丢失

pandas处理数据丢失
      • 创建数据
      • 修改其中几个值为NaN
      • 删除NaN
        • 去除含有NaN的所有行或列
      • 替代NaN
        • 将所有NaN替换成其他值
      • 判断是否缺失数据
      • 输出缺失数据的位置

创建数据
hangIndex = np.array([i for i in string.ascii_letters[:5]])
table = pd.Dataframe(np.arange(20).reshape(5,4),hangIndex,pd.date_range('20211010',periods=4))

Run:

table:
2021-10-10 2021-10-11 2021-10-12 2021-10-13
a 0 1 2 3
b 4 5 6 7
c 8 9 10 11
d 12 13 14 15
e 16 17 18 19

修改其中几个值为NaN
table.iloc[0,0] = np.nan
table.iloc[1:2,:2]=np.nan
table['20211013'] = np.nan

Run;

table:
2021-10-10 2021-10-11 2021-10-12 2021-10-13
a NaN 1.0 2 NaN
b NaN NaN 6 NaN
c 8.0 9.0 10 NaN
d 12.0 13.0 14 NaN

删除NaN 去除含有NaN的所有行或列
table.dropna(
    axis=0,
    how='any'
)
  • axis=0 表示行
  • axis=1 表示列
  • how=‘any’ 表示只要含有NaN就删除该行或该列
  • how=‘all’ 必须全部是NaN才删除

Run:

table:
Empty Dataframe
Columns: [2021-10-10 00:00:00, 2021-10-11 00:00:00, 2021-10-12 00:00:00, 2021-10-13 00:00:00]
Index: []

替代NaN 将所有NaN替换成其他值
table.fillna(value=-1)

Run:

table:
2021-10-10 2021-10-11 2021-10-12 2021-10-13
a -1.0 1.0 2 -1.0
b -1.0 -1.0 6 -1.0
c 8.0 9.0 10 -1.0
d 12.0 13.0 14 -1.0
e 16.0 17.0 18 -1.0

判断是否缺失数据
table.isnull()

Run:

table:
2021-10-10 2021-10-11 2021-10-12 2021-10-13
a True False False True
b True True False True
c False False False True
d False False False True
e False False False True

table.isna()

Run:

table:
2021-10-10 2021-10-11 2021-10-12 2021-10-13
a True False False True
b True True False True
c False False False True
d False False False True
e False False False True

输出缺失数据的位置
hang,lie = -1,-1
for label,contents in table.isna().iteritems():
    lie+=1
    for content in contents:
        hang+=1
        if content:
            print((hang%5,lie%4),sep='t')
  • contents遍历顺序是按列遍历

Run:

(0, 0)
(1, 0)
(1, 1)
(0, 3)
(1, 3)
(2, 3)
(3, 3)
(4, 3)

value = table.isna().values
for i in range(len(value)):
    for j in range(len(value[0])):
        if value[i][j]:
            print((i,j))

Run:

(0, 0)
(1, 0)
(1, 1)
(0, 3)
(1, 3)
(2, 3)
(3, 3)
(4, 3)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/580911.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号