鱼C论坛

 找回密码
 立即注册
查看: 3921|回复: 0

[技术交流] Pandas的数据清洗——删除NaN数据

[复制链接]
发表于 2020-12-15 14:46:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
删除NaN(主要针对列Series),在pandas里可以使用布尔选择或者
dropna函数删除DataFrame的某Series列里的数据,但不会影响DataFrame本身。
  1. import pandas as pd
  2. import numpy as np
  3. val = np.arange(10, 38).reshape(7, 4)
  4. col = list("abcd")
  5. idx = "cake make fake sake wake lake take".split()
  6. df = pd.DataFrame(val, columns = col, index = idx)
  7. df["e"] = np.nan
  8. df.at["make", "e"] = 100
  9. df.at["wake", "e"] = 300
  10. df.loc["jake"] = np.nan
  11. df.at["jake", "c"] = 200
  12. df["f"] = np.nan
  13. print (df)
  14. print (df.e[df.e.notnull()])
  15. df1 = df.e.dropna()
  16. print ('某一列删除NaN数据',df1)
  17. df2 = df.dropna(axis=1,how='all')  # how的默认参数是any,表示只要有NaN值,则删除整行或整列
  18. # axis=1等价于axis='column'
  19. print ('将全部都是NaN数据的列删除',df2)
  20. df3 = df.dropna(axis=0,how='all')  # axis的默认值是0,等价于axis='row'
  21. print ('将全部都是NaN数据的行删除',df3)
  22. df4 = df.copy()
  23. df4.at['jake','c'] = np.NaN
  24. df4.dropna(how='all',inplace=True)
  25. print('默认删除都是NaN数据的行',df4)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-30 08:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表