在 Pandas 的 DataFrame 中合併兩列文字

Ahmed Waheed 2023年1月30日 2020年6月9日
  1. + 運算子方法
  2. df.map() 方法
  3. df.apply() 方法
  4. Series.str.cat() 方法
  5. df.agg() 方法
在 Pandas 的 DataFrame 中合併兩列文字

有時,使用資料集時,你需要組合兩列或更多列以形成一列。例如,你有一個資料集,其中名字和姓氏以列分隔,現在你需要全名列。下面列出了完成此任務的不同方法。

  1. + 運算子
  2. map()
  3. df.apply()
  4. Series.str.cat()
  5. df.agg()

在以下各節中,我們將使用相同的 DataFrame,如下所示:

import pandas as pd
data = [
    ['Ali',
     'Azmat',
     '30'],
    ['Sharukh',
     'Khan',
     '40'],
    ['Linus',
     'Torvalds',
     '70']
]
df = pd.DataFrame(data,columns=['First','Last','Age'])
print (df)

輸出:

     First      Last Age
0      Ali     Azmat  30
1  Sharukh      Khan  40
2    Linus  Torvalds  70

+ 運算子方法

僅當你要合併相同資料型別的資料時,才使用+ 運算子。

import pandas as pd
data = [
    ['Ali',
     'Azmat',
     '30'],
    ['Sharukh',
     'Khan',
     '40'],
    ['Linus',
     'Torvalds',
     '70']
]
df = pd.DataFrame(data,columns=['First','Last','Age']) 
df["Full Name"] = df["First"] + " " + df["Last"]
print(df)

輸出:

     First      Last Age       Full Name
0      Ali     Azmat  30       Ali Azmat
1  Sharukh      Khan  40    Sharukh Khan
2    Linus  Torvalds  70  Linus Torvalds

df.map() 方法

你還可以使用 df.map() 函式合併兩列的文字。

import pandas as pd
data = [
    ['Ali',
     'Azmat',
     '30'],
    ['Sharukh',
     'Khan',
     '40'],
    ['Linus',
     'Torvalds',
     '70']
]
df = pd.DataFrame(data,columns=['First','Last','Age'])
df["Full Name"] = df["First"].map(str) + " " + df["Last"]
print(df)

輸出:

     First      Last Age       Full Name
0      Ali     Azmat  30       Ali Azmat
1  Sharukh      Khan  40    Sharukh Khan
2    Linus  Torvalds  70  Linus Torvalds

df.apply() 方法

join() 函式也用於連線字串。我們可以使用 df.apply() 函式將其應用於我們的 DataFrame.df.apply() 函式用於在特定軸上應用另一個函式。

import pandas as pd
data = [
    ['Ali',
     'Azmat',
     '30'],
    ['Sharukh',
     'Khan',
     '40'],
    ['Linus',
     'Torvalds',
     '70']
]
df['Full Name'] = df[['First', 'Last']].apply(' '.join, axis=1)
print(df)

輸出:

     First      Last Age       Full Name
0      Ali     Azmat  30       Ali Azmat
1  Sharukh      Khan  40    Sharukh Khan
2    Linus  Torvalds  70  Linus Torvalds

Series.str.cat() 方法

我們也可以使用 Series.str.cat() 方法將 Series / Index 中的字串與給定的分隔符連線起來。

import pandas as pd
data = [
    ['Ali',
     'Azmat',
     '30'],
    ['Sharukh',
     'Khan',
     '40'],
    ['Linus',
     'Torvalds',
     '70']
]
df['Full Name'] = df['First'].str.cat(df['Last'],sep=" ")
print(df)

輸出:

     First      Last Age       Full Name
0      Ali     Azmat  30       Ali Azmat
1  Sharukh      Khan  40    Sharukh Khan
2    Linus  Torvalds  70  Linus Torvalds

df.agg() 方法

df.apply() 相同,此方法還用於在指定軸上應用特定函式。

import pandas as pd
data = [
    ['Ali',
     'Azmat',
     '30'],
    ['Sharukh',
     'Khan',
     '40'],
    ['Linus',
     'Torvalds',
     '70']
]
df['Full Name'] = df[['First', 'Last']].agg(' '.join, axis=1)
print(df)

輸出:

     First      Last Age       Full Name
0      Ali     Azmat  30       Ali Azmat
1  Sharukh      Khan  40    Sharukh Khan
2    Linus  Torvalds  70  Linus Torvalds

相關文章 - Pandas DataFrame Column