在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 中的两列值拼接成一个新的列,并得到相同的结果。