Sử dụng iterator
Sử dụng iterator
df = pd.read_csv('data/big_mart_sales.csv', usecols=['Item_Identifier', 'Item_Fat_Content', 'Item_Type', 'Outlet_Size', 'Item_Outlet_Sales', 'Outlet_Establishment_Year'])
Iterrows
DataFrame.iterrows()
row = next(df.iterrows())
row
(0,
Item_Identifier FDA15
Item_Fat_Content Low Fat
Item_Type Dairy
Outlet_Establishment_Year 1999
Outlet_Size Medium
Item_Outlet_Sales 3735.138
Name: 0, dtype: object)
Kết quả trả về cho row là 1 tuple gồm index và Series chứa các giá trị tại index đó.
Cách dùng vòng lặp trong iterrows
Để duyệt từng dòng ta dùng for
như bình thường
prices = []
for i, row in df.iterrows():
prices.append(row['Item_Outlet_Sales'] * 0.5)
print(prices[:5])
[1867.569, 221.7114, 1048.635, 366.19, 497.3526]
Itertuple
DataFrame.itertuples(index=True, name='Pandas')
Trong đó:
-
index
:True
trả về kết quả kèm theo index vàFalse
lược bỏ index -
name
: Quy định kiểu trả vềPandas
: trả về namedtupleNone
: trả về tuplenamedtuple
: trả về namedtuple
Trả về namedtuple
next(df.itertuples(index=True))
Pandas(Index=0, Item_Identifier='FDA15', Item_Fat_Content='Low Fat', Item_Type='Dairy', Outlet_Establishment_Year=1999, Outlet_Size='Medium', Item_Outlet_Sales=3735.138)
Trả về tuple
next(df.itertuples(index=False, name=None))
('FDA15', 'Low Fat', 'Dairy', 1999, 'Medium', 3735.138)
Cách dùng vòng lặp trong itertuples
name=default
prices = []
for row in df.itertuples():
prices.append(row.Item_Outlet_Sales * 0.5)
print(prices[:5])
name=None
prices = []
for row in df.itertuples(index=False, name=None):
prices.append(row[5] * 0.5)
print(prices[:5])