在 Pandas DataFrame 中兩列相減
Manav Narula
2023年1月30日
Pandas 可以處理非常大的資料集,並且有多種功能和操作可以應用到資料中。
其中一個簡單的操作是對兩列進行減法,並將結果儲存在一個新的列中,這將在本教程中討論。這個簡單的任務可以通過多種方式來完成。我們將計算下面 DataFrame 中'a'
和'd'
列之間的差。
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)
輸出:
a b c d
0 10 6 7 8
1 1 9 12 14
2 5 8 10 6
使用 __getitem__
語法([]
)來做 Pandas 中的兩列相減
兩列相減的最簡單方法是訪問所需的列,並使用 __getitem__
語法([]
)建立一個新列。例如:
import pandas as pd
df = pd.DataFrame(
[[10, 6, 7, 8], [1, 9, 12, 14], [5, 8, 10, 6]], columns=["a", "b", "c", "d"]
)
df["d - a"] = df["d"] - df["a"]
print(df)
輸出:
a b c d d - a
0 10 6 7 8 -2
1 1 9 12 14 13
2 5 8 10 6 1
在 Pandas 中使用函式做兩列相減
我們可以很容易地在 Pandas 中建立一個兩列相減的函式,並使用 apply()
函式將其應用到 DataFrame 的指定列中。我們將為 apply()
函式提供引數 axis
,並將其設定為 1,表示該函式應用於列。
import pandas as pd
df = pd.DataFrame(
[[10, 6, 7, 8], [1, 9, 12, 14], [5, 8, 10, 6]], columns=["a", "b", "c", "d"]
)
def x(a, b):
return a - b
df["d - a"] = df.apply(lambda f: x(f["d"], f["a"]), axis=1)
print(df)
輸出:
a b c d d - a
0 10 6 7 8 -2
1 1 9 12 14 13
2 5 8 10 6 1
由於列的減法是一個比較簡單的操作,所以我們可以直接使用 lambda
關鍵字在 apply()
函式中建立簡單的單行函式。
import pandas as pd
df = pd.DataFrame(
[[10, 6, 7, 8], [1, 9, 12, 14], [5, 8, 10, 6]], columns=["a", "b", "c", "d"]
)
df["d - a"] = df.apply(lambda x: x["d"] - x["a"], axis=1)
print(df)
輸出:
a b c d d - a
0 10 6 7 8 -2
1 1 9 12 14 13
2 5 8 10 6 1
在 Pandas 中使用 assign()
方法做兩列相減
DataFrame assign()
方法用於在執行某些操作後向 DataFrame 中新增一列。它返回一個新的 DataFrame,其中包含所有原始的和新的列。下面的例子將展示如何使用 assign()
方法減去兩列。
import pandas as pd
df = pd.DataFrame(
[[10, 6, 7, 8], [1, 9, 12, 14], [5, 8, 10, 6]], columns=["a", "b", "c", "d"]
)
df = df.assign(d_minus_a=df["d"] - df["a"])
print(df)
輸出:
a b c d d_minus_a
0 10 6 7 8 -2
1 1 9 12 14 13
2 5 8 10 6 1
作者: Manav Narula
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