如何在Pandas DataFrame中串联列值

  • Post category:Python

在Pandas DataFrame中串联列值可以通过多种方法实现,下面介绍其中两种常用的方法:

方法一:使用 Pandas.DataFrame.apply

我们可以使用 Pandas.DataFrame.apply 函数将 DataFrame 中每行的值拼接起来,具体操作步骤如下:

1.定义一个函数,函数用于将每行的值拼接起来。例如,我们要将 DataFrame 中的 “col1” 和 “col2” 两列的值拼接成一个新的列 “new_col”,则可以定义如下的函数:

def concatenate(row):
    return str(row['col1']) + '_' + str(row['col2'])

该函数实现了将 “col1” 和 “col2” 列的值拼接成了一个新的字符串,并返回该字符串。

2.对 DataFrame 执行 apply 函数,并将定义的函数传入。例如,我们有一个 DataFrame “df”,要将 “col1” 和 “col2” 两列的值拼接成一个新的列 “new_col”,则可以执行如下代码:

df['new_col'] = df.apply(concatenate, axis=1)

该代码中,第一个参数 “concatenate” 是我们定义的函数名,第二个参数 “axis=1” 指定执行按行操作。

方法二:使用 “+” 操作符

我们还可以使用 “+” 操作符将 DataFrame 中的多列拼接成一个列。具体操作步骤如下:

1.对 DataFrame 中的多列执行 “+” 操作符。例如,我们有一个 DataFrame “df”,要将 “col1” 和 “col2” 两列的值拼接成一个新的列 “new_col”,则可以执行如下代码:

df['new_col'] = df['col1'].astype(str) + '_' + df['col2'].astype(str)

该代码中,使用 “+” 将 “col1” 列和 “col2” 列拼接成一个新的字符串,并将新的字符串存储到 “new_col” 列中。

下面是一个完整的例子:

import pandas as pd

# 创建一个包含两列的 DataFrame
df = pd.DataFrame({'col1': [1, 2, 3], 'col2': [4, 5, 6]})

# 方法一:使用 Pandas.DataFrame.apply
def concatenate(row):
    return str(row['col1']) + '_' + str(row['col2'])

df['new_col_method1'] = df.apply(concatenate, axis=1)

# 方法二:使用 "+" 操作符
df['new_col_method2'] = df['col1'].astype(str) + '_' + df['col2'].astype(str)

print(df)

输出结果:

   col1  col2 new_col_method1 new_col_method2
0     1     4             1_4             1_4
1     2     5             2_5             2_5
2     3     6             3_6             3_6

可以看到,两种方法均可以将 DataFrame 中的两列值拼接成一个新的列,并得到相同的结果。