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/
转载文章受原作者版权保护。转载请注明原作者出处!