其他分享
首页 > 其他分享> > EDA常用操作1

EDA常用操作1

作者:互联网

常用命令记录:

可能包括pandas,numpy,matplotlib,seaborn,scipy
默认数据为df = pd.read_csv()

1. 看column的数据类型

df.info()

2. 看data的简单指标:min,max,Q1,2,3,4,mean,std,count

df.describe()

3. 看有哪些列

df.columns

4. 看每个列的不重复值

df["xxx"].unique()
df[["xxx"]].drop_duplicates()

5. 看每列里面有多少nan

len(df[df['xxx'].isna()])

6. 看哪些列里面存在nan

# 看哪些列里面存在nan
def check_nan(df):
  col_with_nan = []
  for col in df.columns:
    # print(col)
    if len(df[df[col].isna()]) >= 1:
      col_with_nan.append(col)
      continue
  return col_with_nan
check_nan(df)

7. 转变datetime(得重新赋值,然后可以不用自定义格式)

df['xxx'] = pd.to_datetime(df['xxx'],infer_datetime_format=True)

8. 常见matplotlib开头设置

%matplotlib inline
plt.style.use('ggplot')
import warnings
warnings.filterwarnings('ignore')

9. 删除重复行

def drop_duplicates(df):
  len1 = len(df)
  df = df.drop_duplicates()
  len2 = len(df)
  print(f'there are {len2-len1} duplicated rows')
  return df
drop_duplicates(df)

10. 删除所有NaN

# 删除行,方式:all(只有全部是nan才删)
df.dropna(axis=0,how='all')
# 删除列,方式:any(有nan就删),但是要大于thresh个nan
df.dropna(axis=1,how='any',thresh=2)

11. 填充NaN

# 填充常值
df.fillna(0)
# 按列填充常值
values = {'A': 0, 'B': 1, 'C': 2, 'D': 3}
df.fillna(value=values)
# 按前面的数propagate
df.fillna(method='ffill')
# 按后面的数propagate
df.fillna(method='bfill')
# 用Mean来填充
df.fillna(df.mean())
# 用median来填充
df.fillna(df.median())
# 用最大/最小
df.fillna(df.max())
df.fillna(df.min())
# 用出现最多次来填充(用Mode会新生成一个带有频次的表,第一行是每个列里面次数最多的)
df.fillna(df.mode().iloc[0])

12. one-hot-encoding

# 可以添加sparse=True,如果有必要
pd.get_dummies(df['xxx'])
# 添加拼接功能到原来的matrix
def one_hot_encoding(col,df):
  encoding = pd.get_dummies(df[col],sparse=True)
  df.drop(col,axis=1)
  df = pd.concat([df,encoding],axis=0)
  return df

13. freqency encoding

标签:常用,EDA,df,xxx,nan,操作,fillna,drop,col
来源: https://www.cnblogs.com/niemand-01/p/14214352.html