下面是针对“python pandas消除空值和空格以及NaN数据替换方法”的完整攻略:
消除空值和空格
检测空值
在pandas中,使用isnull()
方法检测是否存在缺失值。这个方法会返回一个布尔值的dataframe。其中缺失的值为True,非缺失的值为False。
import pandas as pd
import numpy as np
df = pd.DataFrame({'A':[1,np.nan,3],
'B':[np.nan,5,6],
'C':[7,8,9]})
print(df.isnull())
运行结果:
A B C
0 False True False
1 True False False
2 False False False
处理空值
在pandas中,使用dropna()
方法可以删除含有缺失值的行或列。如果想保留原数据,可以使用copy()
方法来复制一份数据。
df.dropna() # 删除含有缺失值的行
df.dropna(axis=1) # 删除含有缺失值的列
df.dropna(thresh=2) # 至少有2个非空值才保留
使用fillna()
方法填充缺失值,也可以使用ffill()
或bfill()
方法沿着轴向前或向后填充缺失值。
df.fillna(value=0) # 用0填充缺失值
df.ffill() # 向前填充
df.bfill() # 向后填充
消除空格
在pandas中,使用str.strip()
方法消除字符串前后的空格。str.lstrip()
和str.rstrip()
方法分别可删除字符串左侧和右侧的空格。
df['col_name'].str.strip() # 删除列“col_name”中字符串前后的空格
NaN数据替换方法
逐个替换
pandas中,使用replace()
方法逐个替换特定的值。例如,将dataframe中所有的缺失值(NaN)替换为0,可以使用以下代码:
df.replace(np.nan, 0)
批量替换
更便捷的方法是使用replace()
方法批量替换。例如,将dataframe中所有的缺失值(NaN)替换为0,可以使用以下代码:
df.replace([np.nan], [0])
可以使用字典指定要替换的值,例如,将dataframe中column_name列中所有值为'A'的替换为'B':
df.replace({'col_name': {'A': 'B'}})
上述代码将column_name列中所有的'A'替换为'B'。
这就是针对“python pandas消除空值和空格以及NaN数据替换方法”的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python pandas消除空值和空格以及 Nan数据替换方法 - Python技术站