简介效率已经成为按时完成工作的关键因素。完成事情所花的时间不应超过合理的时间。特别是当任务涉及基本编码时。使用Pandas库可以节省您的时间。Pandas是一个开源包。它有助于用Python语言执行数据分析和数据操作。此外,它还为我们提供了灵活的数据结构。目录PandasTip1–行的条件选择PandasTip2–Data的存储PandasTip3–GroupedDataPandasTip4–PandasmapPandasTip5–PandasDataFrame的条件格式化PandasTip1–行的条件选择首先,DataExploration是必不可少的一步。Pandas提供了一种快速简便的方法来执行各种分析。其中一个非常重要的技巧是根据条件选择行或过滤数据。行的条件选择可以基于单个条件或单个语句中由逻辑运算符分隔的多个条件。例如,我使用有关贷款预测的数据集。我们将选择一排尚未毕业且收入低于5,400英镑的客户。让我们看看我们能做什么。视频:https://youtu.be/hc4or_RF5M8importpandasasspddata=pd.read_csv('../Data/loan_train.csv')data.head()data2=data.loc[(data['Education']=='NotGraduate')&(data['ApplicantIncome']<=5400)]data2注意:请记住将每个条件放在括号中。PandasTip2–数据的存储数据可以有两种类型——连续的和离散的,这取决于我们的分析需求。有时我们不需要连续变量中的确切值,而是它所属的组。例如,您的数据age中有一个连续变量。但是你需要一个年龄组来进行分析,比如儿童、青少年、成人、老年人。其实Binning很适合解决我们这里的问题。为了执行分箱,我们使用cut()函数。这对于从连续变量到离散变量很有用。视频:https://youtu.be/WQagYXIFjnsimportpandasasspddf=pd.read_csv('titanic.csv')fromsklearn.utilsimportshuffle#randomizationdf=shuffle(df,random_state=42)df.head()bins=[0,4,17,65,99]labels=['Toddler','Child','Adult','Elderly']category=pd.cut(df['Age'],bins=bins,labels=labels)df.insert(2,'AgeGroup',category)df.head()df['AgeGroup'].value_counts()df.isnull().sum()代码:https://github.com/kunalj101/Data-Science-Hacks/blob/master/Code/binning_data.ipynbPandasTip3–BinningData这个操作在数据科学家和分析师的日常生活中经常进行。Pandas提供了一个基本的函数来进行数据分组,即Groupby。Groupby操作包括根据特定条件拆分对象、应用函数,然后组合结果。让我们再次查看贷款预测数据集,假设我想查看提供给来自不同房地产部门(例如农村、半城市和城市)的人的平均贷款金额。花点时间理解问题陈述并思考如何解决它。那么Pandas的groupby可以非常高效的解决这个问题。先按照属性区域划分数据。其次,我们将mean()函数应用于每个类别。最后,我们将它们组合起来并将其打印为一个新的数据框。视频:https://youtu.be/fK-6ZlPvZYU#导入数据集importpandasaspddf=pd.read_csv('../Data/loan_train.csv')df.head()#男女平均收入df.groupby(['Gender'])[['ApplicantIncome']].mean()#平均贷款额度不同的房产区域,比如城市和农村df.groupby(['Property_Area'])[['LoanAmount']].mean()#比较不同教育背景的贷款情况df.groupby(['Education'])[['Loan_Status']].count()代码:https://github.com/kunalj101/Data-Science-Hacks/blob/master/Code/groupby_in_pandas.ipynbPandasTip4–Pandasmap映射是另一个重要的操作,它提供了高度的灵活性和实际应用。Pandasmap()用于根据输入的对应关系将序列中的每个值映射到其他值。事实上,这个输入可以是一个序列、字典,甚至是一个函数。让我们举一个有趣的例子。我们有一个员工的虚拟数据集。该数据集由以下列组成——姓名、年龄、职业、城市。现在需要添加另一列,说明相应的状态。你会怎么做?如果数据集有10行的范围,您可以手动进行,但如果有数千行怎么办?使用Pandas地图会更有利。视频:https://youtu.be/XkwQOy5RZWY#sampledatadata={'name':['A','B','C','D','E'],'age':[22,26,33,44,50],'profession':['dataengineer','datascientist','entrepreneur','businessanalyst','self-employed'],'city':['Gurgaon','Bangalore','Gurgaon','Pune','NewDelhi']}df=pd.DataFrame(data)df#CityandStatemap_city_to_states={'Gurgaon':'Haryana','Bangalore':'Karnataka','Pune':'Maharashtra','NewDelhi':'Delhi'}#Mapcitycolumntostatedf['state']=df['city'].map(map_city_to_states)df代码:https://github.com/kunalj101/Data-Science-Hacks/blob/master/Code/map%20python.ipynbPandas技巧5–PandasDataFrame的条件格式化这是我最喜欢的Pandas技巧之一。这种技术使我能够在特定条件下直观地定位数据。可以使用Pandas的样式属性将条件格式应用于数据框。实际上,条件格式是根据某种条件将视觉样式应用于数据框的操作。虽然Pandas提供了过多的操作,但我将在这里向您展示一个简单的操作。例如,我们有每个销售人员对应的销售数据。我要看的是那些销售额在80以上的。视频:https://youtu.be/vuirWysk_BAimportpandasasspddata=pd.read_excel("../Data/salesman_performance.xlsx")datadata.styledefhighlight_green(sales):color='green'ifsales>80else'black'return'color:%s'%colorformatting=data.iloc[:,1:6].style.applymap(highlight_green)格式化代码:https://github.com/kunalj101/Data-Science-Hacks/blob/master/Code/Pandas_conditional_formatting.ipynb结论在这篇文章中,我们总结了Pandas的5个技巧。我希望这些技巧可以帮助您完成日常任务并节省大量时间。
