1. 程式人生 > 實用技巧 >在Pandas Dataframe中遍歷行的不同方法

在Pandas Dataframe中遍歷行的不同方法

Python是進行資料分析的一種出色語言,主要是因為以資料為中心的Python軟體包具有奇妙的生態系統。Pandas是其中的一種,使匯入和分析資料更加容易。

讓我們看看在PandasDataframe中遍歷行的不同方法

方法#1:使用Dataframe的index屬性。

# import pandas package as pd 
import pandas as pd 

# Define a dictionary containing students data 
data = {'Name': ['Ankit', 'Amit', 'Aishwarya', 'Priyanka
'], 'Age': [21, 19, 20, 18], 'Stream': ['Math', 'Commerce', 'Arts', 'Biology'], 'Percentage': [88, 92, 95, 70]} # Convert the dictionary into DataFrame df = pd.DataFrame(data, columns = ['Name', 'Age', 'Stream', 'Percentage']) print("Given Dataframe :\n
", df) print("\nIterating over rows using index attribute :\n") # iterate through each row and select # 'Name' and 'Stream' column respectively. for ind in df.index: print(df['Name'][ind], df['Stream'][ind])
輸出:Given Dataframe : Name Age Stream Percentage
0      Ankit   21      Math          88
1 Amit 19 Commerce 92 2 Aishwarya 20 Arts 95 3 Priyanka 18 Biology 70 Iterating over rows using index attribute : Ankit Math Amit Commerce Aishwarya Arts Priyanka Biology

方法2:使用資料框的loc []函式。
# import pandas package as pd 
import pandas as pd 

# Define a dictionary containing students data 
data = {'Name': ['Ankit', 'Amit', 'Aishwarya', 'Priyanka'], 
                'Age': [21, 19, 20, 18], 
                'Stream': ['Math', 'Commerce', 'Arts', 'Biology'], 
                'Percentage': [88, 92, 95, 70]} 

# Convert the dictionary into DataFrame 
df = pd.DataFrame(data, columns = ['Name', 'Age', 'Stream', 'Percentage']) 

print("Given Dataframe :\n", df) 

print("\nIterating over rows using loc function :\n") 

# iterate through each row and select 
# 'Name' and 'Age' column respectively. 
for i in range(len(df)) : 
print(df.loc[i, "Name"], df.loc[i, "Age"]) 

輸出:

Given Dataframe :
         Name  Age    Stream  Percentage
0      Ankit   21      Math          88
1       Amit   19  Commerce          92
2  Aishwarya   20      Arts          95
3   Priyanka   18   Biology          70

Iterating over rows using loc function :

Ankit 21
Amit 19
Aishwarya 20
Priyanka 18


方法3:使用DataFrame的iloc []函式。

# import pandas package as pd 
import pandas as pd 

# Define a dictionary containing students data 
data = {'Name': ['Ankit', 'Amit', 'Aishwarya', 'Priyanka'], 
                'Age': [21, 19, 20, 18], 
                'Stream': ['Math', 'Commerce', 'Arts', 'Biology'], 
                'Percentage': [88, 92, 95, 70]} 

# Convert the dictionary into DataFrame 
df = pd.DataFrame(data, columns = ['Name', 'Age', 'Stream', 'Percentage']) 

print("Given Dataframe :\n", df) 

print("\nIterating over rows using iloc function :\n") 

# iterate through each row and select 
# 0th and 2nd index column respectively. 
for i in range(len(df)) : 
print(df.iloc[i, 0], df.iloc[i, 2]) 
輸出:
Given Dataframe :
         Name  Age    Stream  Percentage
0      Ankit   21      Math          88
1       Amit   19  Commerce          92
2  Aishwarya   20      Arts          95
3   Priyanka   18   Biology          70

Iterating over rows using iloc function :

Ankit Math
Amit Commerce
Aishwarya Arts
Priyanka Biology

方法4:使用資料框的iterrows()方法。

# import pandas package as pd 
import pandas as pd 

# Define a dictionary containing students data 
data = {'Name': ['Ankit', 'Amit', 'Aishwarya', 'Priyanka'], 
                'Age': [21, 19, 20, 18], 
                'Stream': ['Math', 'Commerce', 'Arts', 'Biology'], 
                'Percentage': [88, 92, 95, 70]} 

# Convert the dictionary into DataFrame 
df = pd.DataFrame(data, columns = ['Name', 'Age', 'Stream', 'Percentage']) 

print("Given Dataframe :\n", df) 

print("\nIterating over rows using iterrows() method :\n") 

# iterate through each row and select 
# 'Name' and 'Age' column respectively. 
for index, row in df.iterrows(): 
    print (row["Name"], row["Age"]) 

輸出:

Given Dataframe :
         Name  Age    Stream  Percentage
0      Ankit   21      Math          88
1       Amit   19  Commerce          92
2  Aishwarya   20      Arts          95
3   Priyanka   18   Biology          70

Iterating over rows using iterrows() method :

Ankit 21
Amit 19
Aishwarya 20
Priyanka 18


方法5:使用資料框的itertuples()方法。

# import pandas package as pd 
import pandas as pd 

# Define a dictionary containing students data 
data = {'Name': ['Ankit', 'Amit', 'Aishwarya', 'Priyanka'], 
                'Age': [21, 19, 20, 18], 
                'Stream': ['Math', 'Commerce', 'Arts', 'Biology'], 
                'Percentage': [88, 92, 95, 70]} 

# Convert the dictionary into DataFrame 
df = pd.DataFrame(data, columns = ['Name', 'Age', 'Stream', 'Percentage']) 

print("Given Dataframe :\n", df) 

print("\nIterating over rows using itertuples() method :\n") 

# iterate through each row and select 
# 'Name' and 'Percentage' column respectively. 
for row in df.itertuples(index = True, name ='Pandas'): 
    print (getattr(row, "Name"), getattr(row, "Percentage")) 

輸出:

Given Dataframe :
         Name  Age    Stream  Percentage
0      Ankit   21      Math          88
1       Amit   19  Commerce          92
2  Aishwarya   20      Arts          95
3   Priyanka   18   Biology          70

Iterating over rows using itertuples() method :

Ankit 88
Amit 92
Aishwarya 95
Priyanka 70

方法6:使用資料框的apply()方法。

# import pandas package as pd 
import pandas as pd 

# Define a dictionary containing students data 
data = {'Name': ['Ankit', 'Amit', 'Aishwarya', 'Priyanka'], 
                'Age': [21, 19, 20, 18], 
                'Stream': ['Math', 'Commerce', 'Arts', 'Biology'], 
                'Percentage': [88, 92, 95, 70]} 

# Convert the dictionary into DataFrame 
df = pd.DataFrame(data, columns = ['Name', 'Age', 'Stream', 'Percentage']) 

print("Given Dataframe :\n", df) 

print("\nIterating over rows using apply function :\n") 

# iterate through each row and concatenate 
# 'Name' and 'Percentage' column respectively. 
print(df.apply(lambda row: row["Name"] + " " + str(row["Percentage"]), axis = 1)) 

輸出:

Given Dataframe :
         Name  Age    Stream  Percentage
0      Ankit   21      Math          88
1       Amit   19  Commerce          92
2  Aishwarya   20      Arts          95
3   Priyanka   18   Biology          70

Iterating over rows using apply function :

0        Ankit 88
1         Amit 92
2    Aishwarya 95
3     Priyanka 70
dtype: object