鱼C论坛

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

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

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

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

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

x
删除NaN(主要针对列Series),在pandas里可以使用布尔选择或者
dropna函数删除DataFrame的某Series列里的数据,但不会影响DataFrame本身。
import pandas as pd
import numpy as np
val = np.arange(10, 38).reshape(7, 4)
col = list("abcd")
idx = "cake make fake sake wake lake take".split()
df = pd.DataFrame(val, columns = col, index = idx)
df["e"] = np.nan
df.at["make", "e"] = 100
df.at["wake", "e"] = 300
df.loc["jake"] = np.nan
df.at["jake", "c"] = 200
df["f"] = np.nan
print (df)
print (df.e[df.e.notnull()])
df1 = df.e.dropna()
print ('某一列删除NaN数据',df1)
df2 = df.dropna(axis=1,how='all')  # how的默认参数是any,表示只要有NaN值,则删除整行或整列
# axis=1等价于axis='column'
print ('将全部都是NaN数据的列删除',df2)
df3 = df.dropna(axis=0,how='all')  # axis的默认值是0,等价于axis='row'
print ('将全部都是NaN数据的行删除',df3)
df4 = df.copy()
df4.at['jake','c'] = np.NaN
df4.dropna(how='all',inplace=True)
print('默认删除都是NaN数据的行',df4)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-17 01:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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