Pandas 之 DataFrame

參考這篇文件:《利用Python進行數據分析·第2版》第5章 pandas入門

import pandas as pd
import numpy as np
from pandas import Series,DataFrame
# DataFrame是一個表格型的數據結構,它含有一組有序的列,每列可以是不同的值類型(數值、字符串、布爾值等)。
# DataFrame既有行索引也有列索引,它可以被看做由Series組成的字典(共用同一個索引)。
# DataFrame中的數據是以一個或多個二維塊存放的(而不是列表、字典或別的一維數據結構)
# 建DataFrame的辦法有很多,最常用的一種是直接傳入一個由等長列表或NumPy數組組成的字典
data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada'],
        'year': [2000, 2001, 2002, 2001, 2002, 2003],
        'pop': [1.5, 1.7, 3.6, 2.4, 2.9, 3.2]}
# 如果data裏面字典列表長度不相等,運行就報錯。
frame = pd.DataFrame(data)

# 按照指定順序進行排列
frame1 = pd.DataFrame(data, columns=['year', 'state', 'pop'])
# 指定列和索引,如果列不存在,索引對象值是NaN
frame2 = pd.DataFrame(data, columns=['year', 'state', 'pop', 'debt'],
        index=['one', 'two', 'three', 'four','five', 'six'])

 

# 打印所有數據
print(frame)
# 默認打印前面5行,可以傳入打印行數
print(frame.head())
# values屬性也會以二維ndarray的形式返回DataFrame中的數據
print(frame.values)

 

# 將DataFrame的列獲取爲一個Series
series1 = frame['state']
# 或者這樣:
series2 = frame.state
print(series1)
print(series2)

 

# 將DataFrame的行獲取爲一個Series,使用loc
series3 = frame.loc[1]
# 或者這樣:
series4 = frame2.loc['three']
print(series3)

 

# 列賦值
frame2['debt'] = 16.5
frame2['debt'] = np.arange(6.)

# 爲不存在的列賦值會創建出一個新列
# 添加一個新的布爾值的列,state是否爲'Ohio'
frame2['eastern'] = frame2.state == 'Ohio'

# del方法可以用來刪除這列
del frame2['eastern']
print(frame2.columns)
# 通過索引方式返回的列只是相應數據的視圖而已,並不是副本。
# 因此,對返回的Series所做的任何就地修改全都會反映到源DataFrame上。
# 通過Series的copy方法即可指定複製列

 

 

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