【Python庫】Pandas(部分)

目錄

參考

簡介

Numpy 和 Pandas 有什麼不同

詳介

Pandas數據結構之Series

從ndarray創建一個系列Series

從字典創建一個系列

從標量創建一個系列

使用標籤檢索數據(索引)

使用索引標籤值列表檢索多個元素

Pandas數據結構之DataFrame

創建一個空的DataFrame

從列表創建DataFrame

從ndarrays/Lists的字典來創建DataFrame

從列表創建數據幀DataFrame

從系列的字典來創建DataFrame

Pandas重建索引

Pandas IO工具

read_csv()

read_table()

 


參考

莫煩 Pandas教程

易百教程

 


簡介

Numpy 和 Pandas 有什麼不同

如果用 python 的列表和字典來作比較, 那麼可以說 Numpy 是列表形式的,沒有數值標籤;而 Pandas 就是字典形式。

Pandas是基於Numpy構建的,讓Numpy爲中心的應用變得更加簡單。

要使用Pandas,首先需要了解它的兩個主要的數據結構:Series和DataFrame

詳介

Pandas數據結構之Series

系列(Series)是能夠保存任何類型的數據(整數,字符串,浮點數,Python對象等)的一維標記數組。軸標籤統稱爲索引。

  • 從ndarray創建一個系列Series

#這裏沒有傳遞任何索引,因此默認情況下,它分配了從0到len(data)-1的索引,即:0到3
import pandas as pd
s=pd.Series([21,52,3]) 
#可自定義索引序號s = pd.Series(data,index=[20,21,22,23])
print(s)

'''
0    21
1    52
2     3
dtype: int64
'''
  • 從字典創建一個系列

data={'a':0,'b':1,'c':2}
s=pd.Series(data)
  • 從標量創建一個系列

如果數據是標量值,則必須提供索引。將重複該值以匹配索引的長度。

s=pd.Series(5,index=[0,1,2],dtype=float)
'''
0    5.0
1    5.0
2    5.0
dtype: float64
'''
  • 使用標籤檢索數據(索引)

s=pd.Series([1,2,3],index=['a','b','c'])
print(s['a']) #1
  • 使用索引標籤值列表檢索多個元素

s=pd.Series([1,2,3],index=['a','b','c'])
print(s[['a','c']]) #注意方括號的個數!!!
'''
a    1
c    3
dtype: int64
'''

 

Pandas數據結構之DataFrame

數據幀(DataFrame)是二維數據結構,即數據以行和列的表格方式排列。

  • 創建一個空的DataFrame

import pandas as pd
df=pd.DataFrame()
print(df)
'''
Empty DataFrame
Columns: []
Index: []
'''
  • 從列表創建DataFrame

import pandas as pd
#可以使用單個列表或列表列表創建數據幀(DataFrame)
data=['a','b']
df=pd.DataFrame(data)
print(df)
'''
   0
0  a
1  b
'''

data2=[['ywp',100],['wtx',99],['baby',88]]
df2=pd.DataFrame(data2,columns=['Name','Score'])
print(df2)
'''
   Name  Score
0   ywp    100
1   wtx     99
2  baby     88
'''
  • 從ndarrays/Lists的字典來創建DataFrame

所有的ndarrays必須具有相同的長度。如果傳遞了索引(index),則索引的長度應等於數組的長度。

如果沒有傳遞索引,則默認情況下,索引將爲range(n),其中n爲數組長度。

import pandas as pd
data={'name':['ywp','wtx','baby'],'score':[66,77,88]}
df=pd.DataFrame(data)
print(df)
'''
   name  score
0   ywp     66
1   wtx     77
2  baby     88
'''
#0 1 2 是分配給每個使用函數range(n)的默認索引

df2=pd.DataFrame(data,index=['rank3','rank2','rank2'])
print(df2)
'''
       name  score
rank3   ywp     66
rank2   wtx     77
rank2  baby     88
'''
  • 從列表創建數據幀DataFrame

字典列表可作爲輸入數據傳遞以用來創建數據幀(DataFrame),字典鍵默認爲列名。

import pandas as pd
data=[{'a':1,'b':2},{'a':5,'b':10,'c':20}]
df=pd.DataFrame(data,index=['first', 'second'],columns=['a','b'])
print(df)
'''
        a   b
first   1   2
second  5  10
'''
  • 從系列的字典來創建DataFrame

字典的系列可以傳遞以形成一個DataFrame。 所得到的索引是通過的所有系列索引的並集。

  • Pandas重建索引

 

 

 

Pandas IO工具

讀取文本文件(或平面文件)的兩個主要功能是read_csv()read_table()。它們都使用相同的解析代碼來智能地將表格數據轉換爲DataFrame對象。

read_csv()

  • 從csv文件中讀取數據並創建一個DataFrame對象
import pandas as pd
df=pd.read_csv('D:\Anaconda\Lib\site-packages\lda2vec\examples\hacker_news\data\hacker_news_comments_try.csv',encoding='gb18030')
#注意編碼方式,否則報錯=,=
print(df)
'''
     story_id         ...           story_comment_count
0     3985069         ...                            13
1     2481190         ...                            16
2     6302825         ...                            42
3     6268480         ...                            11
4     5487883         ...                            44
5     4489556         ...                            24
6     2151674         ...                            11
7     6302825         ...                            42
等等
'''
  • 使用index_col自定義索引

  • 使用names參數指定標題的名稱
  • 使用header參數來刪除原標題

詳見:https://www.yiibai.com/pandas/python_pandas_io_tool.html

read_table()

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章