巡覽 Pandas 的 DataFrame
巡覽 Pandas 的 DataFrame¶
在 DataFrame 中巡覽資料有以下幾種方法:
P.S. 這 API 圖案是擷取至 Pandas 官網
接下來依序介紹不同的函數功能:
iteritems()¶
iteritems(): 按列巡覽,將 DataFrame 的每一欄位迭代為(欄位名稱, Series)組,可以通過 row[index]
對元素進行讀取。
In [1]:
import pandas as pd
# 設置原始資料
raw_data = [{'A':20, 'B':30}, {'A':40, 'B':60}, {'A':60, 'B':90}]
df = pd.DataFrame(raw_data)
print(df)
A B 0 20 30 1 40 60 2 60 90
In [2]:
for column_name, row in df.iteritems():
# 輸出欄位名稱
print(column_name)
A B
In [3]:
for row in df.iteritems():
# 輸出欄位名稱
print(row[0])
# 輸出每一欄位的列的值
print(row[1])
A 0 20 1 40 2 60 Name: A, dtype: int64 B 0 30 1 60 2 90 Name: B, dtype: int64
In [4]:
for row in df.iteritems():
# 輸出欄位名稱
print(row[0])
# 輸出每一欄位的第一列的值,第二列以此類推
print(row[1][0]) # 第一列
print(row[1][1]) # 第二列
print(row[1][2]) # 第三列
A 20 40 60 B 30 60 90
iterrows()¶
iterrows(): 按列巡覽,將 DataFrame 的每一列迭代為(index, Series)組,可以通過 row[name]
對元素進行讀取。
In [5]:
import pandas as pd
# 設置原始資料
raw_data = [{'A':20, 'B':30}, {'A':40, 'B':60}, {'A':60, 'B':90}]
df = pd.DataFrame(raw_data)
print(df)
A B 0 20 30 1 40 60 2 60 90
In [6]:
for index, row in df.iterrows():
# 列印每一列的索引值
print(index)
0 1 2
In [7]:
for row in df.iterrows():
# 透過索引,讀出每一列的元素索引值
print(row[0])
0 1 2
In [8]:
for row in df.iterrows():
# 透過索引,讀出每一列的元素值
print(row[1])
A 20 B 30 Name: 0, dtype: int64 A 40 B 60 Name: 1, dtype: int64 A 60 B 90 Name: 2, dtype: int64
In [9]:
for row in df.iterrows():
# 透過第二維索引,讀出欄位 A 每一列的元素值
print(row[1][0])
20 40 60
In [10]:
for row in df.iterrows():
# 透過第二維索引,讀出欄位 B 每一列的元素值
print(row[1][1])
30 60 90
itertuples()¶
itertuples(): 按行巡覽,將 DataFrame 的每一行迭代為 tuple,可以通過 row[name]
對元素進行讀取,比 iterrows() 效率高。
getattr(row, 'name')
: 函數用於返回一個物件屬性值。
In [11]:
import pandas as pd
# 設置原始資料
raw_data = [{'A':20, 'B':30}, {'A':40, 'B':60}, {'A':60, 'B':90}]
df = pd.DataFrame(raw_data)
print(df)
A B 0 20 30 1 40 60 2 60 90
In [12]:
for row in df.itertuples():
# 使用 getattr 獲得 row 物件,並取得個欄位 A, B 的屬性值
print(getattr(row, 'A'), getattr(row, 'B'))
20 30 40 60 60 90
getattr()¶
語法: getattr(object, name[, default])
object: 物件。
name: 字串,物件屬性。
default: 預設返回值,如果不提供該參數,在沒有對應屬性時,將觸發 AttributeError。
返回物件屬性值。
In [13]:
class Student(object):
No = 1
student = Student()
# 獲取屬性 No 值
getattr(student, 'No')
Out[13]:
1
In [14]:
# 屬性 name 不存在,觸發異常
getattr(student, 'name')
--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-14-04c887c07658> in <module> 1 # 屬性 name 不存在,觸發異常 ----> 2 getattr(student, 'name') AttributeError: 'Student' object has no attribute 'name'
In [15]:
# 屬性 name 不存在,但設置了預設值
getattr(student, 'name', 3)
Out[15]:
3
Lai Tai-Yu (賴岱佑)
Comments
Post a Comment