數(shù)據(jù)分析師日常工作會(huì)涉及各種任務(wù),比如數(shù)據(jù)預(yù)處理、數(shù)據(jù)分析、機(jī)器學(xué)習(xí)模型創(chuàng)建、模型部署。
在本文中,我將分享10個(gè) Python 操作,它們可覆蓋90%的數(shù)據(jù)分析問(wèn)題。有所收獲點(diǎn)贊、收藏、關(guān)注。
1、閱讀數(shù)據(jù)集
閱讀數(shù)據(jù)是數(shù)據(jù)分析的組成部分,了解如何從不同的文件格式讀取數(shù)據(jù)是數(shù)據(jù)分析師的第一步。下面是如何使用 pandas 讀取包含 Covid-19 數(shù)據(jù)的 csv 文件的示例。
import pandas as pd # reading the countries_data file along with the location within read_csv function. countries_df = pd.read_csv('C:/Users/anmol/Desktop/Courses/Python for Data Science/Code/countries_data.csv') # showing the first 5 rows of the dataframe countries_df.head()
以下是 countries_df.head() 的輸出,我們可以使用它查看數(shù)據(jù)框的前 5 行:
2、匯總統(tǒng)計(jì)
下一步就是通過(guò)查看數(shù)據(jù)匯總來(lái)了解數(shù)據(jù),例如 NewConfirmed、TotalConfirmed 等數(shù)字列的計(jì)數(shù)、均值、標(biāo)準(zhǔn)偏差、分位數(shù)以及國(guó)家代碼等分類(lèi)列的頻率、最高出現(xiàn)值
countries_df.describe()
使用 describe 函數(shù),我們可以得到數(shù)據(jù)集連續(xù)變量的摘要,如下所示:
在 describe() 函數(shù)中,我們可以設(shè)置參數(shù)"include = 'all'"來(lái)獲取連續(xù)變量和分類(lèi)變量的摘要
countries_df.describe(include = 'all')
3、數(shù)據(jù)選擇和過(guò)濾
分析其實(shí)不需要數(shù)據(jù)集的所有行和列,只需要選擇感興趣的列并根據(jù)問(wèn)題過(guò)濾一些行。
例如,我們可以使用以下代碼選擇 Country 和 NewConfirmed 列:
countries_df[['Country','NewConfirmed']]
我們還可以將數(shù)據(jù)過(guò)濾Country,使用 loc,我們可以根據(jù)一些值過(guò)濾列,如下所示:
countries_df.loc[countries_df['Country'] == 'United States of America']
4、聚合
計(jì)數(shù)、總和、均值等數(shù)據(jù)聚合,是數(shù)據(jù)分析最常執(zhí)行的任務(wù)之一。
我們可以使用聚合找到各國(guó)的 NewConfimed 病例總數(shù)。使用 groupby 和 agg 函數(shù)執(zhí)行聚合。
countries_df.groupby(['Country']).agg({'NewConfirmed':'sum'})
5、Join
使用 Join 操作將 2 個(gè)數(shù)據(jù)集組合成一個(gè)數(shù)據(jù)集。
例如:一個(gè)數(shù)據(jù)集可能包含不同國(guó)家/地區(qū)的 Covid-19 病例數(shù),另一個(gè)數(shù)據(jù)集可能包含不同國(guó)家/地區(qū)的緯度和經(jīng)度信息。
現(xiàn)在我們需要結(jié)合這兩個(gè)信息,那么我們可以執(zhí)行如下所示的連接操作
countries_lat_lon = pd.read_excel('C:/Users/anmol/Desktop/Courses/Python for Data Science/Code/countries_lat_lon.xlsx') # joining the 2 dataframe : countries_df and countries_lat_lon # syntax : pd.merge(left_df, right_df, on = 'on_column', how = 'type_of_join') joined_df = pd.merge(countries_df, countries_lat_lon, on = 'CountryCode', how = 'inner') joined_df
6、內(nèi)建函數(shù)
了解數(shù)學(xué)內(nèi)建函數(shù),如 min()、max()、mean()、sum() 等,對(duì)于執(zhí)行不同的分析非常有幫助。
我們可以通過(guò)調(diào)用它們直接在數(shù)據(jù)幀上應(yīng)用這些函數(shù),這些函數(shù)可以在列上或在聚合函數(shù)中獨(dú)立使用,如下所示:
# finding sum of NewConfirmed cases of all the countries countries_df['NewConfirmed'].sum() # Output : 6,631,899 # finding the sum of NewConfirmed cases across different countries countries_df.groupby(['Country']).agg({'NewConfirmed':'sum'}) # Output # NewConfirmed #Country #Afghanistan 75 #Albania 168 #Algeria 247 #Andorra 0 #Angola 53
7、用戶(hù)自定義函數(shù)
我們自己編寫(xiě)的函數(shù)是用戶(hù)自定義函數(shù)。我們可以在需要時(shí)通過(guò)調(diào)用該函數(shù)來(lái)執(zhí)行這些函數(shù)中的代碼。例如,我們可以創(chuàng)建一個(gè)函數(shù)來(lái)添加 2 個(gè)數(shù)字,如下所示:
# User defined function is created using 'def' keyword, followed by function definition - 'addition()' # and 2 arguments num1 and num2 def addition(num1, num2): return num1+num2 # calling the function using function name and providing the arguments print(addition(1,2)) #output : 3
8、Pivot
Pivot 是將一列行內(nèi)的唯一值轉(zhuǎn)換為多個(gè)新列,這是很棒的數(shù)據(jù)處理技術(shù)。
在 Covid-19 數(shù)據(jù)集上使用 pivot_table() 函數(shù),我們可以將國(guó)家名稱(chēng)轉(zhuǎn)換為單獨(dú)的新列:
# using pivot_table to convert values within the Country column into individual columns and # filling the values corresponding to these columns with numeric variable - NewConfimed pivot_df = pd.pivot_table(countries_df, columns = 'Country', values = 'NewConfirmed') pivot_df
9、遍歷數(shù)據(jù)框
很多時(shí)候需要遍歷數(shù)據(jù)框的索引和行,我們可以使用 iterrows 函數(shù)遍歷數(shù)據(jù)框:
# iterating over the index and row of a dataframe using iterrows() function for index, row in countries_df.iterrows(): print('Index is ' + str(index)) print('Country is '+ str(row['Country'])) # Output : # Index is 0 # Country is Afghanistan # Index is 1 # Country is Albania # .......
10、字符串操作
很多時(shí)候我們處理數(shù)據(jù)集中的字符串列,在這種情況下,了解一些基本的字符串操作很重要。
例如如何將字符串轉(zhuǎn)換為大寫(xiě)、小寫(xiě)以及如何找到字符串的長(zhǎng)度。
# country column to upper case countries_df['Country_upper'] = countries_df['Country'].str.upper() # country column to lower case countries_df['CountryCode_lower']=countries_df['CountryCode'].str.lower() # finding length of characters in the country column countries_df['len'] = countries_df['Country'].str.len() countries_df.head()
原文地址:https://mp.weixin.qq.com/s?__biz=MzAxNTAwNjQzNw==&mid=2448615639&idx=2&sn=5ca6c37f1372d7bb3e1673bc1f74d045