遍歷 Pandas DataFrame 的列

Manav Narula 2023年1月30日
  1. 使用 getitem ([])語法在列上遍歷 Pandas
  2. 使用 dataframe.iteritems() 遍歷 Pandas Dataframe 的列
  3. 使用 enumerate() 遍歷 Pandas Dataframe 的列
遍歷 Pandas DataFrame 的列

DataFrames 可以非常大,可以包含數百行和列。有必要對 DataFrame 中的列進行遍歷,並對列進行單獨的操作,如迴歸和許多其他操作。

我們可以使用 for 迴圈來遍歷 DataFrame 的列。for 迴圈的基本語法如下。

for value in sequence:
    # Body of Loop

我們可以使用多種方法在 DataFrame 上執行 for 迴圈,例如,getitem 語法([])、dataframe.iteritems() 函式、enumerate() 函式和使用 DataFrame 的索引。

使用 getitem ([])語法在列上遍歷 Pandas

我們可以使用列標籤,使用 getitem 語法([])在 DataFrame 上執行 for 迴圈。例如,我們可以使用列標籤在 DataFrame 上執行 for 迴圈。

import pandas as pd

df = pd.DataFrame(
    [[10, 6, 7, 8], [1, 9, 12, 14], [5, 8, 10, 6]], columns=["a", "b", "c", "d"]
)

print(df)
print("------------------")
for column in df:
    print(df[column].values)

輸出:

    a  b   c   d
0  10  6   7   8
1   1  9  12  14
2   5  8  10   6
------------------
[10  1  5]
[6 9 8]
[ 7 12 10]
[ 8 14  6]

values() 函式用於將物件的元素提取為列表。

使用 dataframe.iteritems() 遍歷 Pandas Dataframe 的列

Pandas 提供了 dataframe.iteritems() 函式,該函式有助於對 DataFrame 進行遍歷,並將列名及其內容作為系列返回。

import pandas as pd

df = pd.DataFrame(
    [[10, 6, 7, 8], [1, 9, 12, 14], [5, 8, 10, 6]], columns=["a", "b", "c", "d"]
)

for (colname, colval) in df.iteritems():
    print(colname, colval.values)

輸出:

a [10  1  5]
b [6 9 8]
c [ 7 12 10]
d [ 8 14  6]

使用 enumerate() 遍歷 Pandas Dataframe 的列

enumerate() 與 DataFrame 一起返回索引和列標籤,這使我們能夠對其進行遍歷。

import pandas as pd

df = pd.DataFrame(
    [[10, 6, 7, 8], [1, 9, 12, 14], [5, 8, 10, 6]], columns=["a", "b", "c", "d"]
)

for (index, colname) in enumerate(df):
    print(index, df[colname].values)

輸出:

0 [10  1  5]
1 [6 9 8]
2 [ 7 12 10]
3 [ 8 14  6]

我們可以非常有效地使用上述任何一種方法來遍歷 DataFrame。我們還可以單獨在列上執行迴歸等操作。例如,我們可以將最後一列設定為自變數,並將其他列作為因變數執行 OLS 迴歸,如下例所示。

import pandas as pd
import statsmodels.api as sm
import numpy as np

df = pd.DataFrame(
    [[10, 6, 7, 8], [1, 9, 12, 14], [5, 8, 10, 6]], columns=["a", "b", "c", "d"]
)

for column in df:
    Y = df["d"]
    X = df[column]
    X = sm.add_constant(X)
    model = sm.OLS(X, Y)
    results = model.fit()
    print(results.params)

輸出:

          0         1
d  0.094595  0.418919
          0     1
d  0.094595  0.75
          0         1
d  0.094595  0.959459
          0    1
d  0.094595  1.0
作者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

相關文章 - Pandas DataFrame