50 个常见的 Python 数据分析小方法(上)

共 2191字,需浏览 5分钟

 ·

2020-12-04 20:53

作为数据分析的初学者,我感受最深的就是很多时候我想分析处理下数据,无从下手,有的代码也不记得,查找使用方法又得花费时间,所以我整理了一份数据分析问答形式的专题,这里都是平时实战中常用到的,方便以后直接利用!



嘿嘿,进入正题!上题目~
Q1:查看数据相关信息?
df.info() #查看数据类型
df.shape #查看数据规模
df.describe() #数据统计信息描述

Q2:如何设置才能不隐藏DataFram的列?





pd.set_option("max_columns",100#这里100可以调整:最大显示列数
pd.set_option('display.max_columns',None#这种是都显示
Q3:统计空值?
df.isnull().sum()
Q4:查看是否有重复值?
df.duplicated().any()
Q5:填充空值?
df.fillna(method = "ffill"#这是前向方法填充,bfill为后向填充
df.fillna(0#用0填充空值
Q6:删除列?
df.drop([""], axis =1, inplace = True)
Q7:删除有空值的行?
df.dropna(axis = 0, how = 'any', inplace = True)
Q8:删除重复值?
df.drop_duplicates(inplace=True)
Q9:排除特殊值的数据?
df = df[~df["列名"].isin(['这里写特殊值/错误值'])]
Q10:修改数据类型?
df[""] = df[""].astype(int)
Q11:重置索引?
df = df.reset_index(drop = True)
Q12:按照某一列降序重新排序?
m = df[''].sort_values(ascending = False).index[:].tolist()
df = df.loc[m]
df = df.reset_index(drop = True)
Q13:从某个指标上考虑分组?
s = df.groupby("列")["指标列"].agg(["count","sum","mean"])
Q14:筛选出指标统计大于10的,以均值排序输出前十名?
s = s[s["count"]>20]
s.sort_values("mean", ascending = False).head(10)
Q15:分组统计输出为DataFram,并且进行列重命名?
df = df.groupby('',as_index = False).count[['','']]
df.rename(columns = {'原来的列名':'新的列名'},inplace = True)
Q16:时间标准化?
data['时间']=pd.to_datetime(data['时间'])
Q17:根据生日计算年龄?
df['age'] = (pd.to_datetime('这里是当前日期如:2020-4') - pd.to_datetime(df['birthday'])) / pd.Timedelta('365 days')
Q18:分割字符串?(以斜杠为例)
t = df[""].str.split("\",expand = True)
t[0]
Q19:切片分段?(以分数列为例)
cut_bins = np.arrange(90,130,5)#分段设置,这里是分成5段
bins = pd.cut(df['score'], cut_bins)#将数据切片
bin_counts = df['score'].groupby(bins).count()
Q20:统计列值?
df[''].value_counts()
Q21:列值对比可视化?
df[''].value_counts().plot(kind = "bar")
Q22:查看相关性?
df.corr()
Q23:画散点图,看两个属性之间的关系?
df.plot.scatter(x="",y = "", figsize=(,), title = "")
Q24:DataFram直接可视化?
fig = df[['','']].plot(kind = "kde", figsize = (24,8), title = "")
fig.axes.title.set_size(10)
Q25:逻辑回归预测?
from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
X = df.drop(['y'],axis = 1)
y = df['y']
model.fit(X, y)
y_pre = model.predict(test)


推荐阅读



一行代码让 pandas 的 apply 速度飙到极致!


用 Style 方法提高 Pandas 数据的颜值


高性能 Pandas 方法:query 和 eval


点击下方阅读原文加入社区会员



点赞鼓励一下



浏览 46
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报