Julia中的數據分析入門

2020-12-12 deephub

有關Julia中數據分析入門的分步介紹。

Julia的入門非常簡單,尤其是當您熟悉Python時。 在本篇文章中,我們將使用約翰霍普金斯大學系統科學與工程中心在其GitHub存儲庫中提供的Covid-19數據(https://github.com/CSSEGISandData/)。

入門

對於我們的數據分析,我們將會使用一些軟體包來簡化操作:CSV,DataFrame,日期和可視化。 只需輸入軟體包名稱,即可開始使用。

using CSVusing DataFramesusing Datesusing Plots

如果包還沒有添加到您的項目環境中,您可以輕鬆地添加它們。

using PkgPkg.add("CSV")Pkg.add("DataFrames")Pkg.add("Dates")Pkg.add("Plots")

讀取數據

讀取數據只需幾個簡單的步驟。首先,我們指定CSV文件的URL。其次,我們指定文件在本地機器上的路徑。我們將加入目前的工作目錄和文件名「confirmed.csv」路徑。然後將文件從URL下載到指定的路徑。第四個也是最後一個步驟是將CSV文件讀入一個名為「df」的DataFrame中。

# Step 1: Specify the file locationURL = "https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv"# Step 2: Specify the pathpath = joinpath(pwd(), "confirmed.csv")# Step 3: Download the filedownload(URL, path)# Step 4: Reading the CSV file into a DataFramedf = CSV.File(path) |> DataFrame

讓我們看看數據的前10行。

first(df, 10)

整理數據

在本例中,我們不需要省份/州、Lat和Long列。所以我們先把它們放下。通過在select語句後加上感嘆號,df會被修改。

select!(df, Not(["Province/State", "Lat", "Long"]))

澳大利亞和其他一些國家有多個行。當我們想要繪製每個國家的數據時,我們必須聚合數據。我們將通過執行split — apply — combine來做到這一點。首先,我們使用groupby函數按國家分割數據。然後我們對每組(即每個國家)的所有日期列應用一個求和函數,因此我們需要排除第一列「國家/地區」。最後,我們將結果合併到一個df中。

grp = groupby(df, "Country/Region")column_names = names(grp)date_columns = column_names[2:end] # select all columns except the first column "Country/Region"df = combine(gdf, date_columns .=> sum .=> date_columns)

讓我們看看到目前為止我們有什麼。

first(df, 10)

我們的df現在(在寫入時)有320列。但是,我們希望一列顯示日期,另一列顯示我們稱之為「case」的值。換句話說,我們要把數據幀從寬格式轉換成長格式,這裡就需要使用堆棧函數。

df = DataFrames.stack(df, Not("Country/Region"), "Country/Region", variable_name="Date", value_name="Cases",)

下面是我們格式化完成的數據,顯示最後10行。

last(df, 10)

還有一件事要做。我們需要將de列「Date」從分類字符串格式轉換為繪製時間序列的日期格式。

df.Date = Dates.Date.(df.Date |> Array, Dates.DateFormat("m/d/Y")) .+ Dates.Year(2000)

這是對最終整理後數據的描述如下。

describe(df)

在可視化數據之前,讓我們先將整理後的數據寫入磁碟。

CSV.write(joinpath(pwd(), "confirmed_tidy.csv"), df)

可視化數據

在我們的第一張圖中,我們將可視化美國Covid-19累計確診病例。

plot(df[df["Country/Region"] .== "US", :Date], df[df["Country/Region"] .== "US", :Cases], title = "Confirmed cases US", xlabel = "Date", ylabel = "Number of cases", legend = false,)

在一個圖中繪製多個國家的時間序列非常簡單。首先創建基本塊,並為每個國家添加一層。

p = plot(title = "Confirmed Cases", xlabel = "Date", ylabel = "Number of cases", legend = :topleft,)for country = ["US", "Russia", "India"] plot!( df[df["Country/Region"] .== country, :Date], df[df["Country/Region"] .== country, :Cases], label = country, )endp

在我們的最後一個圖中,我們將繪製美國每天的新病例。要做到這一點,我們必須計算連續天數之間的差值。因此,對於時間序列的第一天,這個值將不可用。

bar(df[df["Country/Region"] .== "US", :Date][2:end], diff(df[df["Country/Region"] .== "US", :Cases]), title = "Daily Cases US", xlabel = "Date", ylabel = "Number of cases", color = "red", linecolor = "white", legend = false, size = (900, 400),)

最後,我們將把圖保存到磁碟上。

savefig(joinpath(pwd(), "daily_cases_US.svg"))

總結

在本文中,我們介紹了使用Julia進行數據分析的基礎知識。根據我的經驗,Julia很像python。這兩種語言都易於編寫和學習。兩者都是開源的。我喜歡Julia的原因是它的高性能以及它與其他程式語言(如Python)的互操作性。我喜歡Python的地方在於它龐大的包集合和龐大的在線社區。

作者:R e n é

deephub翻譯組

相關焦點

  • Julia(建設者)
    遞歸數據結構,尤其是那些可能是自引用的數據結構,通常必須先以不完整的狀態創建,然後以編程方式更改為完整的結構,才能與對象創建分開的一個步驟來進行乾淨的構造。有時,使用比欄位少或少的參數類型構造對象是很方便的。Julia的對象構造系統可以解決所有這些情況,甚至更多。
  • 數據分析入門系列教程-決策樹實戰
    數據分析入門系列教程-數據清洗數據分析入門系列教程-數據採集數據分析入門系列教程-微博熱點數據分析入門系列教程-KNN原理數據分析入門系列教程-KNN實戰數據分析入門系列教程-決策樹原理在學習了上一節決策樹的原理之後,你有沒有想動手實踐下的衝動呢,今天我們就來用決策樹進行項目實戰。
  • Julia(複數和有理數)
    julia> (-3 + 2im) - (5 - 1im)-8 + 3imjulia> (-1 + 2im)^2-3 - 4imjulia> (-1 + 2im)^2.5julia> (1 + 2im) + 0.51.5 + 2.0imjulia> (2 + 3im) - 0.5im2.0 + 2.5imjulia> 0.75(1 + 2im)0.75
  • 76% 的 Julia 用戶將 Python 作為首選替代語言
    與其他大多數語言調查不同的是,Julia 語言調查的受訪者中,學者佔比 60%,業界人士僅有 43%。這也與它在數據分析和計算科學方面的作用強相關。將 Julia 用作生產的開發者相對較少。調查顯示,使用 Julia 超過 6 個月以上的專業人員中,有 22% 的人在生產中使用 Julia 來完成關鍵業務任務。
  • Python繪製Mandelbrot Set與Julia Set
    因為兩個集合是同一個式子的不同參數的遞歸,並且Mandlebrot是對Julia的一種概括,可以點擊Mandlebrot Set中的一點,觀察對應Julia Set的變化或許更為直觀,也更能體會兩者其中美妙的關聯。計算思路Mandlebrot Set 與 Julia Set都是對z^2+c的迭代,不同的是,Mandlebrot Set是將複平面每一點帶入c,z的初始值為0。
  • 一個工具解救職場新人,幾分鐘完成數據分析入門
    就算是應屆畢業生也不例外,以後去大公司面試求職的難度也會加大,畢竟也是萬人過河的趨勢,面對不管是重新找工作的朋友還是應屆畢業生,掌握一個過硬的工作技能會不會讓你更有信心呢,比如說:數據分析能力。很多人可能對數據分析不屑一顧,覺得就是用Excel做一些表格,搭配一些統計圖。
  • Python數據分析入門教程(一):獲取數據源
    作者 | CDA數據分析師俗話說,巧婦難為無米之炊。不管你廚藝有多好,如果沒有食材,也做不出香甜可口的飯菜來,所以想要做出飯菜來,首先要做的就是要買米買菜。而數據分析就好比是做飯,首先也應該是準備食材,也就是獲取數據源。一、導入外部數據導入數據主要用到的是Pandas裡的read_x()方法,x表示待導入文件的格式。
  • 數據分析入門系列教程-數據清洗
    從今天開始,我們再一起來學習數據分析,共同進步!首先先來進行一個數據清洗的實戰,使用比較經典的數據集,鐵達尼號生存預測數據。我們新增一列 alone,把兩列都是 0 的數據添加到新列中並設置為 0,把兩列相加不為 0 的數據添加到新列中,並設置數值為 1。那麼原來的兩列就可以刪除了。
  • 大數據分析工程師入門9-Spark SQL
    本文為《大數據分析師入門課程》系列的第9篇,在本系列的第8篇-Spark基礎中,已經對Spark做了一個入門介紹,在此基礎上本篇拎出Spark SQL,主要站在使用者的角度來進行講解,需要注意的是本文中的例子的代碼均使用Scala語言。
  • 數據分析必備——統計學入門基礎知識
    數據之路,與你同行!——數據說·夢想季 導讀:要做好數據分析,除了自身技術硬以及數據思維靈活外,還得學會必備的統計學基礎知識!因此,統計學是數據分析必須掌握的基礎知識,即通過搜索、整理、分析、描述數據等手段,以達到推斷所測對象的本質,甚至預測對象未來的一門綜合性科學。統計學用到了大量的數學及其它學科的專業知識,其應用範圍幾乎覆蓋了社會科學和自然科學的各個領域,而在數據量極大的網際網路領域也不例外,因此紮實的統計學基礎是一個優秀的數據人必備的技能。
  • 大數據入門:Hive和Hbase區別對比
    在大數據技術生態當中,Hive和Hbase無疑都是非常重要的兩個組件,在實際的大數據處理任務當中,這兩者也都不可或缺,尤其是在Hadoop基礎架構的支撐下,這兩者各自佔據著重要地位。今天的大數據入門分享,我們就來講講Hive和Hbase區別對比。
  • 數據分析的黃金十二宮,從入門到精通,十二類好書,想要拿走
    而想要系統地提升自己的數據分析能力,僅靠實際工作中的歷練,或是利用日常的碎片時間從網上搜集和學習數據分析相關的零散知識或案例,肯定是遠遠不夠的。大家非常有必要通過一些專業書籍,由淺入深,建立自己的數據分析知識體系,並針對性地運用於自己的工作中。這裡有一份完整的學習數據分析的書單,可供大家參考,由淺入深分為十二類別,每個類別大家可擇其一。
  • 用EXCEL做數據分析,從實戰中熟悉,更進一步
    ,很多髒數據或者重複數據,所以我們要給數據「洗白白」;然後我們就可以用各種方法對數據進行分析了;在最後分析完成之後,我們就可以用數據可視化的方式,利用圖表的形式讓大家看懂數據。EXCEL作為數據分析工作中最常用的軟體,是我們在入門數據分析首先要學的工具,今天我們就以EXCEL的使用為例,看看如何做到基礎的數據分析工作。
  • 數據分析中如何進行靜態分類分析
    分類分析是指將不同的數值區間分別定義為不同的指標,例如將利潤運營指標(KPI)定義為高盈利、中盈利虧損三種類型,通過計算公式,將銷售訂單歸類,最終進行求和等分析。分類分析分為兩種:靜態分類分析和動態分類分析。
  • 日常數據分析中如何進行排名分析
    一、靜態排名分析1.商業場景排名即為依據某一個維度(如銷售額或利潤)對維度中的個體(如國家)進行升序或降序排序。靜態排名指排名行數固定。例如,銷售利潤在前十名的產品、消費金額在前十名的客戶等。表是最適合表現排名結果的圖表二、動態排名分析1.商業場景動態排名是靜態排名的升級。在動態排名中,排名的行數是動態的,可隨時通過參數調整。
  • 數據分析如何選擇行業
    顯然我從事的職業沒有數據發展的通道,如果我轉而做BIM,然後再去做建築行業的數據分析,也未嘗不可,至少我所學過的知識不會變成沉沒成本,因為畢業太久,即使師出同門也早已走向不同方向,我從事建築行業的數據分析也要重頭開始,而且建築行業的數據分析屬於小眾,並不如電商,網際網路金融這麼多需求量大,所以決定放棄所學專業和專業知識。
  • 提高數據分析能力,你不得不看的33本書|推薦收藏
    數據分析是一門專業且跨越多個領域的學科,需要我們同時具備數據能力、業務能力,還有基本的數據思維方法。除了平時在網上搜集相關資料學習以外,如果希望短時間內高效的掌握數據分析的知識並運用到工作中,這個時候參考經典的好書,對提高數據分析能力會更有幫助。
  • 從數據分析的5個層次看看什麼才叫做懂業務?
    編輯導語:人們總說:數據分析師應該懂業務,那麼如何才叫做懂業務呢?又應該懂到什麼程度呢?本文作者從數據分析的5個層次:入門、縱覽、入微、通幽、化境出發,為我們解答了這些問題。
  • 做數據可視化分析,首選這幾款軟體
    但是現在,通過網際網路技術的不斷進步,數據可視化不僅僅是只能通過複雜的代碼進行簡單的分析展現,而是湧現了大批的數據可視化工具。通過體驗了絕大多數的BI工具之後,我們挑選了幾款給大家進行深入的分析。 1、Power BI PowerBI背靠微軟,大廠商的背景就註定了這款工具不平凡。
  • Excel高效數據分析,原來這麼簡單?
    今天這個時代,數據無處不在。不論你從事什麼工作,在什麼崗位,是管理者還是基層員工,總會接觸到各種數據,不可避免地與數據產生交集。 數據分析並非高不可攀,它離我們每個人都很近。想要高效處理和分析數據,早點下班,就必然要用到Excel。