分享几个常用的Python函数,助你快速成为Pandas大神!!
共 6070字,需浏览 13分钟
·
2021-06-16 10:44
在Python当中模块Pandas在数据分析中以及可视化当中是被使用的最多的,也是最常见的模块,模块当中提供了很多的函数和方法来应对数据清理、数据分析和数据统计,今天小编就通过20个常用的函数方法来为大家展示一下其中的能力,希望大家能有所收获。
marketing = pd.read_csv("DirectMarketing.csv")
groceries = pd.read_csv("Groceries_dataset.csv")
df = pd.read_csv("Churn_Modelling.csv")
df = pd.read_csv("Churn_Modelling.csv", nrows = 5000)
df.shape
(5000,14)
df1 = pd.read_csv("Churn_Modelling.csv", usecols=['Gender', 'Age', 'Tenure', 'Balance'])
groceries.isna().sum()
Member_number 0
Date 0
itemDescription 0
dtype: int64
下面我们来填充数据集当中的缺失值,我们有很多种方式方法来填充数据集当中的缺失值,比方说中位数、平均数、众数等等
groceries['itemDescription'].fillna(value=groceries['itemDescription'].mode()[0], inplace=True)
groceries["Date"].fillna(method = "ffill", inplace = True)
假若我们想把这些缺失值给抹去,也很好来操作,使用“drop”方法,“inplace=True”表明原数组内容直接被改变
groceries.drop(axis = 0, how = 'any', inplace = True)
groceries.dtypes
Member_number int64
Date object
itemDescription object
dtype: object
我们看到的是,“Date”这一列的数据类型是“object”,我们可以通过“astype”这个方法来改变这一列的数据类型
groceries['Date'] = groceries['Date'].astype("datetime64")
groceries['Date'] = pd.to_datetime(groceries['Date'])
除此之外,我们再读取数据的时候,也可以通过里面的参数“parse_dates”来改变这一列的数据类型
groceries = pd.read_csv("Groceries_dataset.csv", parse_dates=['Date'])
groceries.dtypes
Member_number int64
Date datetime64[ns]
itemDescription object
dtype: object
通常来说有很多种方式方法来筛选数据以得出我们想要的结果,比方说我们可以通过一些逻辑符号“==”、“!=”或者是“>”“<”等方式,例如下面的代码便是挑选出“itemDescription”等于是“pip fruit”的数据
groceries[groceries["itemDescription"] == "pip fruit"].head()
当然还有“isin”这个方法来从一定的范围内选出数据,我们能够传入一个列表,在列表中注明我们要筛选的数据,例如下面的代码,我们筛选出“Member_number”在这些范围当中的数据
groceries[groceries.Member_number.isin([3737, 2433, 3915, 2625])].head()
groceries.query('3000 < Member_number < 5000').head()
groceries[['Member_number','Date', 'itemDescription']].where(groceries['Member_number'] > 2500, 0).head()
“~”符号用来表明我们需要筛选出不再我们给定的范围之内的数据,比方说下面的代码我们筛选出“Member_number”不再这些范围当中的数据
groceries[~groceries.Member_number.isin([3737, 2433, 3915, 2625])].head()
“value_counts”方法是被使用最广泛的工具,在数据统计和计数当中,计算一下该列当中每大类的离散值出现的频率
marketing["OwnHome"].value_counts()
Own 516
Rent 484
Name: OwnHome, dtype: int64
marketing.Catalogs.value_counts(normalize=True)
12 0.282
6 0.252
24 0.233
18 0.233
除此之外,我们也可以用“nunique”这个方法来查看某一列离散值当中有几大类,例如下面的代码中“OwnHome”这一列只有两大类
marketing["OwnHome"].nunique()
2
一般数据集中的索引大家可以理解为就是“行数”,也就是“第一行”、“第二行”,当然我们可以通过“set_index”这个方法来将任意某一列设置为我们需要的索引,比方说数据集中的“Date”字段被设置成了索引
groceries.set_index('Date', inplace=True)
当我们去除掉某几行数据之后,数据集当中的索引会出现“断裂”的情况,同理当我们合并两个数据集的时候,索引也不会被重新设置,要是上面的情况出现,数据集中的索引便不是“连续”的了,我们可以通过“reset_index”来重新设置索引,例如下面的数据集的索引并不是连续的
groceries.reset_index(drop=True, inplace=True)
groceries.loc[:,["Member_number", "Date"]].head()
# 取第一列和第二列两列的数据
groceries.iloc[:,[0, 1]].head()
groceries['Year'] = groceries['Date'].dt.year
groceries['Month'] = groceries['Date'].dt.month
12. 去除某几列的数据
groceries.drop(['Year','Month'], axis=1, inplace=True)
要是想在数据集当中增加几列的时候,我们可以使用“insert”方法,例如,我们再第一列和第二列的位置插入“Month”数据和“Year”的数据
year = groceries['Date'].dt.year
month = groceries['Date'].dt.month
groceries.insert(1, 'Month', month)
groceries.insert(2, 'Year', year)
groceries['Member_number_rank'] = groceries['Member_number'].rank(method = 'first', ascending = False).astype('int')
df.round(1).head()
df[df['Surname'].str.startswith('Mi')].head()
groceries[groceries.itemDescription.str.len() > 20].head()
我们可以对离散值类型的某一列数据,当中是字符串的数据,进行分离,例如我们遇到“Date”这一列当中的数据是字符串,然后我们可以通过“split”这个方法来进行字符串的分离,例如下面的代码将“Date”这一列当中的月份数据给分离出来了
groceries['Month'] = groceries['Date'].str.split('-', expand=True)[1]
我们可以在已有数据集的基础上,通过“plot”这个方法以及里面的参数“kind”来进行可视化,例如我们想要话直方图的话
df['Balance'].plot(kind='hist', figsize=(10,6), title='Customer Balance')
我们有时候可能需要对数据集当中某些数据打标签,表上颜色来显示其重要性,在“Pandas”模块中有“style”这个方法可以使用,例如下面的代码将“Salary”以及“Catalogs”这两列的最大值标出来了
df_new.style.highlight_max(axis = 0, color = "yellow")
推荐阅读:
入门: 最全的零基础学Python的问题 | 零基础学了8个月的Python | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 | 从万众期待到口碑扑街!唐探3令人失望 | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影
趣味:弹球游戏 | 九宫格 | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影
小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!| 再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|
年度爆款文案
点阅读原文,领AI全套资料!