pandas数据处理

pandas数据处理

目录

1.处理丢失数据

  • 有两种丢失数据:
  • None
  • np.nan(NaN)
  • 区别:
type(None)
type(np.nan)
  • 为什么在数据分析中需要用到的是浮点类型的空而不是对象类型?

  • 数据分析中常常使用某些形式的运算来处理原始数据,如果原始数据中的空值为 NaN的形式,则不会干扰或者中断运算

  • NaN可以参与运算
  • None不可以参与运算

np.nan+1

None + 1
  • 【注意】在pandas中如果遇到了None形式的空值则pandas会将其强制转换成NaN形式

2.处理空值操作

  • 方法
  • isnull
  • notnull
  • any
  • all
  • dropna
  • fillna

df=DataFrame(data=np.random.randint(0,100,size=(7,5)))
df.iloc[2,3]=None
df.iloc[4,2]=np.nan
df.iloc[5,4]=None
  • 方法一:对空值进行过滤(删除空所在的行数据)
  • 技术: isnull,notnull,any,all

df.isnull()

df.isnull().any(axis=1)

df.notnull().all(axis=1)

df.loc[df.notnull().all(axis=1)]
  • 方法二: dropna:可以直接将缺失的行或者列进行删除

df.dropna(axis=0)
  • 方法三:对缺失值进行覆盖
  • fillna,使用空的近邻值进行填充

df.fillna(value=100)

df.fillna(axis=0,method='bfill')
  • 方法四:使用空值对应列的均值进行空值填充
for col in df.columns:

    if df[col].isnull().sum()>0:

        mean_value=df[col].mean()

        df[col]=df[col].fillna(value=mean_value)
  • 总结:什么时候用 dropna,什么时候用 fillna
  • 尽量使用 dropna,如果删除成本太高,则使用 fillna

4.处理重复数据

  • 方法
  • duplicated()
  • drop_duplicates()

df = DataFrame(data=np.random.randint(0,100,size=(8,6)))
df.iloc[1] = [1,1,1,1,1,1]
df.iloc[3] = [1,1,1,1,1,1]
df.iloc[5] = [1,1,1,1,1,1]

df.duplicated(keep='first')

df.loc[~df.duplicated(keep='first')]

df.drop_duplicates(keep='first')

5. 处理异常数据

- 自定义一个1000行3列(A,B,C)取值范围为0-1的数据源,然后将C列中的值大于其两倍标准差的异常值进行清洗
df=DataFrame(data=np.random.random(size=(1000,3)),columns=['A','B','C'])

two_std=df['C'].std()*2
df.loc[~(df['C']>two_std)]

df.loc[df['C']<two_std]

6. 随机查看5条数据

data.sample(5)

Original: https://blog.csdn.net/m0_46926492/article/details/124316487
Author: 荼靡,
Title: pandas数据处理

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/676836/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球