收集整理了一份《2024年最新Python全套学习资料》免费送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来
如果你需要这些资料,可以添加V无偿获取:hxbc188 (备注666)
正文
使用 fillna() 即可一步实现替换缺失值。它可以用目标列的平均值/众数/中位数更新缺失值。在下面的例子中,我们用‘Gender’,‘Married’和‘Self_Employed’这几列的众数替换它们的缺失值。
#首先我们导入一个函数来确定模式
from scipy.stats import mode
mode(data['Gender'])
输出:
ModeResult(mode=array([‘Male’], dtype=object), count=array([489]))
记住,众数有时也会是数组,因为可能会出现多个高频值。默认情况下我们用第一个:
mode(data['Gender']).mode[0]
输出:
‘Male’
现在我们就可以填充缺失值了,使用前面第 2 种方法进行检查。
#导入值:
data['Gender'].fillna(mode(data['Gender']).mode[0], inplace=True)
data['Married'].fillna(mode(data['Married']).mode[0], inplace=True)
data['Self_Employed'].fillna(mode(data['Self_Employed']).mode[0], inplace=True)
#现在再次检查缺失值进行确认:
print data.apply(num_missing, axis=0)
经确认,缺失值已经被替换掉。注意,这只是一种常见的替换方法,还有其它复杂的方法,比如为缺失值建模。
数据透视表
Pandas 还可以用于创建 Excel 风格的数据透视表。例如,在我们这个例子中,数据的关键列就是包含了缺失值的‘LoanAmount’。我们可以用‘Gender’,‘Married’和‘Self_Employed’这几个组的平均值替换掉缺失值。这样每组的平均‘LoanAmount’可以确定为:
#确定数据透视表
impute_grps = data.pivot_table(values=["LoanAmount"], index=["Gender","Married","Self_Employed"], aggfunc=np.mean)
print impute_grps
多索引
如果你留意一下第 3 种技巧的输出结果,你会发现它有一个奇怪的特点:每个索引由 3 个值组成。这就是多索引,它能加快我们的操作速度。
继续使用上面第 3 种技巧的例子,我们有每一组的值,但尚未估算缺失值。
我们可以使用之前用到的技巧来解决这个问题:
#用缺失的 LoanAmount仅迭代所有的行
for i,row in data.loc[data['LoanAmount'].isnull(),:].iterrows():
ind = tuple([row['Gender'],row['Married'],row['Self_Employed']])
data.loc[i,'LoanAmount'] = impute_grps.loc[ind].values[0]
#现在再次检查缺失值进行确认
print data.apply(num_missing, axis=0)
注意:
多索引需要用元组来定义 loc 语句中的索引组,这是在函数中用到的一个元组。
这里的 .values[0] 后缀是必需的,因为默认情况下会返回一系列的元素,这会产生一个和 DataFrame 不匹配的索引。在这个例子中,直接分配值会产生错误。
Crosstab
该函数用于对数据获取一个初步的“感觉”(概览)。这里,我们可以验证一个基本的假设。例如,在这个例子中,我们预计“Credit_History”会大幅影响借款状态。那么我们就可以用如下所示的交叉表进行测试:
pd.crosstab(data["Credit_History"],data["Loan_Status"],margins=True)
这些都是绝对值。但是,使用百分比会更直观些。我们可以用 apply 函数来完成:
def percConvert(ser):
return ser/float(ser[-1])
pd.crosstab(data["Credit_History"],data["Loan_Status"],margins=True).apply(percConvert, axis=1)
现在,很明显有信用历史的人获取贷款的几率更高:达到 80%,而没有信用的人只有 9%。
但事实并非如此简单。由于我们已知具有信用历史非常重要,那么如果我们将有信用历史的人的借款状态预测为 Y、无信用历史的人预测为 N,会怎样呢?我们会惊讶地发现,全部 614 次测试中有 82+378=460 次预测正确,准确率达到了 75%!
你可能会纳闷为何我们需要统计模型,但是你要知道,能将准确率提高哪怕 0.001% 也是一项非常艰难的挑战。
注意:75% 的准确率是在训练集上取得的准确率,在测试集上会略微不同,但也差不多。
合并DataFrame
如果我们有来自多个数据源的信息需要核对,那么合并 DataFrame 会是基本的操作。考虑一种假设情况,其中不同房产类型有不同的房产均价(每平米价格),我们将 DataFrame 定义为:
prop_rates = pd.DataFrame([1000, 5000, 12000], index=['Rural','Semiurban','Urban'],columns=['rates'])
prop_rates
现在,我们就可以将该信息和初始 DataFrame 合并为:
data_merged = data.merge(right=prop_rates, how='inner',left_on='Property_Area',right_index=True, sort=False)
data_merged.pivot_table(values='Credit_History',index=['Property_Area','rates'], aggfunc=len)
通过数据透视表我们可以知道成功合并了。注意,‘values’参数和这里无关,因为我们只是简单计算值而已。
为DataFrame排序
Pandas 能让我们很容易地根据多个列进行排序,可以通过如下操作完成:
data_sorted = data.sort_values(['ApplicantIncome','CoapplicantIncome'], ascending=False)
data_sorted[['ApplicantIncome','CoapplicantIncome']].head(10)
注意:Pandas 的“Sort”函数已经不能用了,我们应该使用“sort_values”来代替它。
绘图(箱形图&直方图)
可能有很多人不知道我们可以在 Pandas 上直接绘出箱型图和直方图,其实没必要额外调用 matplotlib。只需一行命令就行了。例如,如果我们想根据 Loan_Status 比较贷款申请人的收入分布情况:
import matplotlib.pyplot as plt
%matplotlib inline
data.boxplot(column="ApplicantIncome",by="Loan_Status")
如果你也是看准了Python,想自学Python,在这里为大家准备了丰厚的免费学习大礼包,带大家一起学习,给大家剖析Python兼职、就业行情前景的这些事儿。
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、学习软件
工欲善其必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
三、全套PDF电子书
书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。
四、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
成为一个Python程序员专家或许需要花费数年时间,但是打下坚实的基础只要几周就可以,如果你按照我提供的学习路线以及资料有意识地去实践,你就有很大可能成功!
最后祝你好运!!!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
如果你需要这些资料,可以添加V无偿获取:hxbc188 (备注666)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
05e862fe4e9.png)
成为一个Python程序员专家或许需要花费数年时间,但是打下坚实的基础只要几周就可以,如果你按照我提供的学习路线以及资料有意识地去实践,你就有很大可能成功!
最后祝你好运!!!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
如果你需要这些资料,可以添加V无偿获取:hxbc188 (备注666)
[外链图片转存中…(img-BYO0i0Gx-1713859839739)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!