在 Python Pandas 中使用 str.split 將字串拆分為兩個列表列

Luqman Khan 2023年1月30日 2022年5月16日
  1. 在 Python Pandas 中使用 str.split() 函式將字串拆分為兩個列表/列
  2. 使用基本語法將 Pandas DataFrame 中的字串列拆分為多列
  3. 在 Python Pandas 中將字串轉換為列表
  4. 在 Python Pandas 中從字串建立單獨的列
  5. まとめ
在 Python Pandas 中使用 str.split 將字串拆分為兩個列表列

Pandas 有一種基於分隔符/定界符拆分字串的方法。我們將使用 pandas str.split() 函式。

在 Python Pandas 中使用 str.split() 函式將字串拆分為兩個列表/列

該字串可以儲存為系列列表,也可以由單個分隔的字串、多列 DataFrame 構成。

使用的函式類似於 Python 的預設 split() 方法,但它們只能應用於單個字串。

語法:

Syntax:Series.str.split(pat=None, n=-1, expand=False)
Let's define each of the parameters of syntax
Parameters:
pat:String value, separator, or delimiter used to separate strings
n=The maximum number of separations to make in a single string; the default is -1, which signifies all.
expand: If True, this Boolean value returns a data frame with different values in separate columns. Otherwise, it returns a series containing a collection of strings.
return: Depending on the expand parameter, a series of lists or a data frame will be generated.

首先,我們用一個簡單的例子來解釋,然後是一個 CSV 檔案。

使用基本語法將 Pandas DataFrame 中的字串列拆分為多列

data[['A', 'B']] = data['A'].str.split(',', 1, expand=True)

請參閱下面的示例,這些示例演示了此語法在實踐中的使用。

按逗號拆分列:

import pandas as pd
df = pd.DataFrame({'Name': ['Anu,Ais ', 'Bag, Box', 'fox, fix'],
                   'points': [112, 104, 127]})
df

輸出:

在 Python 中按逗號拆分列

#split team column into two columns
df[['Name', 'lastname']] = df['Name'].str.split(',', 2, expand=True)
df

輸出:

在 python 中更新 DataFrame

對於程式碼中使用的 CSV 檔案下載,請單擊此處

學生成績資料包含在以下示例中使用的 DataFrame 中。附加任何操作之前的 DataFrame 影象。

學生表現

我們以兩種方式解釋字串的拆分。

  • 將字串轉換為列表
  • 從字串建立單獨的列

在 Python Pandas 中將字串轉換為列表

在此資料中使用 split 函式在每個 d 處拆分午餐列。該選項設定為 1,單個字串中的最大分隔數為 1。

expand 引數設定為 False。返回的不是一系列 DataFrame,而是一個字串列表。

import pandas as pd	
df = pd.read_csv("/content/drive/MyDrive/StudentsPerformance.csv")
# dropping null value columns to avoid errors
df.dropna(inplace = True)
# new data frame with split value columns
df["lunch"]= df["lunch"].str.split("d", n = 1, expand = True)
# df display
df.head(9)

輸出:

在 Python Pandas 中將字串轉換為列表

輸出影象顯示午餐列現在有一個列表,因為 n 選項設定為 1。

字串在第一次出現 d 時被分隔,而不是在後續出現時分隔(字串中最多 1 次分隔)。

在 Python Pandas 中從字串建立單獨的列

在此示例中,父母教育程度列由空格" " 分隔,並且擴充套件選項設定為 True。

這意味著它將返回一個 DataFrame,其中所有分隔的字串位於不同的列中。然後使用 Dataframe 構建新列。

使用 drop() 方法刪除舊的父母教育水平列。

import pandas as pd
df = pd.read_csv("/content/drive/MyDrive/StudentsPerformance.csv")
# dropping null value columns to avoid errors
df.dropna(inplace = True)
new = df["parental level of education"].str.split(" ", n = 1, expand = True)
df["educational level"]= new[0]
df["insititute"]= new[1]
# Dropping old Name columns
df.drop(columns =["parental level of education"], inplace = True)
# df display
df.head(9)

輸出:

從字串中分離列之後

split() 函式提供了一個新的 DataFrame,該 DataFrame 在 DataFrame 中建立了兩個新列(教育級別和學院)。

上圖顯示了新列。我們還可以使用顯示新建立的列的新關鍵字檢視新列。

new.head(9)

輸出:

新 DataFrame

まとめ

因此,在你的 Pandas 資訊框中通常有一個部分需要在資訊大綱中分成兩個部分。

例如,如果你的資訊大綱中的某個部分是全名,你可能需要將其分為名字和姓氏。