<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
pandas 是基於NumPy 的一種工具,該工具是為解決資料分析任務而建立的。Pandas 納入了大量庫和一些標準的資料模型,提供了高效地操作大型資料集所需的工具。pandas提供了大量能使我們快速便捷地處理資料的函數和方法。你很快就會發現,它是使Python成為強大而高效的資料分析環境的重要因素之一。
資料處理的時候經常性需要整理出表格,在這裡介紹pandas常見使用:
參考連結:10 minutes to pandas https://pandas.pydata.org/docs/user_guide/10min.html#min
Pandas常見的就兩種資料型別:Series和DataFrame,可以對應理解為向量和矩陣,前者是一維的,後者是二維的。在DF中類似統計學中的資料組織方式,一行代表一項資料,一列代表一種特徵,用這種方式記憶能夠幫你更好理解DF。需要注意的是:在DF中index是行,column是列。
常使用.csv格式的檔案,我們在匯入資料的時候使用pd.read_csv(),在匯出資料的時候用df.write_csv(“/data/ymz.csv”).
# 讀入資料 In [144]: pd.read_csv("foo.csv") Out[144]: Unnamed: 0 A B C D 0 2000-01-01 0.350262 0.843315 1.798556 0.782234 1 2000-01-02 -0.586873 0.034907 1.923792 -0.562651 2 2000-01-03 -1.245477 -0.963406 2.269575 -1.612566 3 2000-01-04 -0.252830 -0.498066 3.176886 -1.275581 4 2000-01-05 -1.044057 0.118042 2.768571 0.386039 .. ... ... ... ... ... 995 2002-09-22 -48.017654 31.474551 69.146374 -47.541670 996 2002-09-23 -47.207912 32.627390 68.505254 -48.828331 997 2002-09-24 -48.907133 31.990402 67.310924 -49.391051 998 2002-09-25 -50.146062 33.716770 67.717434 -49.037577 999 2002-09-26 -49.724318 33.479952 68.108014 -48.822030 [1000 rows x 5 columns]
# 寫出資料 In [143]: df.to_csv("foo.csv")
對資料操作包括增(建立),刪,改,查。
相比較Series,我們更常使用DataFrame資料型別,常使用的建立DataFrame型別有兩種,一種是使用data建立(注意data得是一個二維list/array等),一種是使用字典建立。
# 使用data匯入 In [5]: dates = pd.date_range("20130101", periods=6) In [6]: dates Out[6]: DatetimeIndex(['2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04', '2013-01-05', '2013-01-06'], dtype='datetime64[ns]', freq='D') In [7]: df = pd.DataFrame(data=np.random.randn(6, 4), index=dates, columns=list("ABCD")) In [8]: df Out[8]: A B C D 2013-01-01 0.469112 -0.282863 -1.509059 -1.135632 2013-01-02 1.212112 -0.173215 0.119209 -1.044236 2013-01-03 -0.861849 -2.104569 -0.494929 1.071804 2013-01-04 0.721555 -0.706771 -1.039575 0.271860 2013-01-05 -0.424972 0.567020 0.276232 -1.087401 2013-01-06 -0.673690 0.113648 -1.478427 0.524988
# 使用字典 In [9]: df2 = pd.DataFrame( ...: { ...: "A": 1.0, ...: "B": pd.Timestamp("20130102"), ...: "C": pd.Series(1, index=list(range(4)), dtype="float32"), ...: "D": np.array([3] * 4, dtype="int32"), ...: "E": pd.Categorical(["test", "train", "test", "train"]), ...: "F": "foo", ...: } ...: ) ...: In [10]: df2 Out[10]: A B C D E F 0 1.0 2013-01-02 1.0 3 test foo 1 1.0 2013-01-02 1.0 3 train foo 2 1.0 2013-01-02 1.0 3 test foo 3 1.0 2013-01-02 1.0 3 train foo
1)使用loc在行尾增加
增加一行資料的方法有loc, iloc, append, concat, merge。這裡介紹一下loc,loc[index]是在一行的最後增加資料。但是你需要注意loc[index]中的index,如果與已出現過的index相同,則會覆蓋原先index行,若不相同則才會增加一行資料。
2)使用concat將兩個DF合併
concat()也是一個增加資料常用的方法,常見於兩個表的拼接與爬蟲使用中,作用類似於append(),但是append()將在不久後被pandas捨棄,所以還是推薦使用concat()。
增加一列資料的方法直接用[]便可,例子如下:
Series用的比較少,案例如下:
In [3]: s = pd.Series([1, 3, 5, np.nan, 6, 8]) In [4]: s Out[4]: 0 1.0 1 3.0 2 5.0 3 NaN 4 6.0 5 8.0 dtype: float64
對於刪除資料,我們使用drop()方法,並指定引數為index(行)或者column(列)
改動一行,列資料常用loc()和[]方法。
改動一行我們使用loc[]=[…]進行更改。
改動一列資料我們使用[]進行更改。
在查詢資料的時候,我們常使用[]來檢視行列資料,配合.T來將矩陣轉置。也可以使用head(),tail()來檢視前幾行和後幾行資料。
使用.loc[index]來檢視特定行資料,或者[]。建議使用.loc[]方法或者.iloc[]方法,loc[]通過行的名字尋找,iloc[]通過索引尋找。
使用類似[0:2]來檢視特定行資料,和python中list使用類似。這個方法其實是呼叫了__getitem__()方法
。
我們需要使用兩層[]巢狀來存取資料,例如[ [“j”, “i”] ]。
確定第幾行第幾列後,使用.loc()方法或者.iloc()方法查詢。
b = a.loc[ 1, "dir_name" ]
資料分析時常用的兩個操作,轉置和計算統計量。
使用.T便可以完成。
使用.describe()。
使用.drop_duplicates()
id_df = self.frames_meta_sub[['time_idx', 'pos_idx', 'slice_idx']].drop_duplicates()
使用.to_numpy()方法
將你所選擇的資料全部轉成二維的或者一維的ndarray,需要注意的是to_numpy()
並不僅僅侷限於數位,字串也是可以轉換的(雖然這樣開銷比較大),ndarray能儲存字串,這會讓你處理資料的過程變得異常簡單。有幾個維度取決於你取了幾行或者幾列。
df = df[ ["channel"] ] ar = df.to_numpy()
要取出 DataFrame 中特定位置的值,可以使用 .loc 或 .iloc 方法,具體取決於您想要使用的索引型別。
如果您使用標籤索引(例如,行和列都使用標籤名稱),則可以使用 .loc 方法。例如,如果您有一個名為 df 的 DataFrame,它具有行標籤為 row_label,列標籤為 column_label 的元素,則可以使用以下程式碼獲取該元素的值:
value = df.loc[row_label, column_label]
如果您使用整數位置索引(例如,行和列都使用整數位置),則可以使用 .iloc 方法。例如,如果您有一個名為 df 的 DataFrame,它具有第一個行和第一個列的元素,則可以使用以下程式碼獲取該元素的值:
value = df.iloc[0, 0]
請注意,索引從零開始,因此第一個行和第一個列的位置為 0。
到此這篇關於10分鐘快速入門Pandas庫的文章就介紹到這了,更多相關Pandas庫作用內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45