pandas 将多列数据字符串拼接在一起

在pandas中将多列数据字符串拼接在一起,可以使用 apply 方法结合 lambda 表达式进行操作。下面提供两种常见的方法:
方法一:使用 apply 和 lambda 表达式
假设有如下的DataFrame数据,其中需要将 col1、col2 和 col3 拼接成一个字符串:

import pandas as pd
df = pd.DataFrame({'col1': ['a', 'b', 'c'],
                   'col2': ['d', 'e', 'f'],
                   'col3': ['g', 'h', 'i']})

 

可以使用以下代码将三列数据拼接成一个字符串:

df['concat'] = df.apply(lambda x: ''.join(x), axis=1)

 

其中,apply 方法的 axis 参数为 1,表示按行进行操作。lambda 表达式中的 x 为每一行的数据,”.join(x) 将一行数据中的所有元素拼接成一个字符串。
执行以上代码后,DataFrame 数据将变为:

  col1 col2 col3 concat
0    a    d    g   adg
1    b    e    h   beh
2    c    f    i   cfi

 

方法二:使用 apply 和 join 方法
另外一种方法是使用 apply 方法结合 join 方法。代码如下:

df['concat'] = df.apply(''.join, axis=1)

 

其中,apply 方法中的参数为 join 方法,表示对每一行数据进行字符串拼接。执行以上代码后,DataFrame 数据将和方法一的结果相同。
需要注意的是,以上两种方法都是将多列数据拼接成一个字符串,如果需要在拼接的字符串中添加分隔符,只需在 join 方法中加入分隔符即可。例如,以下代码将多列数据使用逗号 , 进行拼接:

df['concat'] = df.apply(lambda x: ','.join(x), axis=1)

 

如果对指定列进行拼接

如果你想对DataFrame中的指定列进行字符串拼接,可以将前面提到的方法稍作修改。以下是两种常见的方法:
方法一:使用 apply 和 lambda 表达式
假设有如下的DataFrame数据,其中需要将 col2 和 col3 拼接成一个字符串:

import pandas as pd
df = pd.DataFrame({'col1': ['a', 'b', 'c'],
                   'col2': ['d', 'e', 'f'],
                   'col3': ['g', 'h', 'i']})

 

可以使用以下代码将两列数据拼接成一个字符串:

df['concat'] = df[['col2', 'col3']].apply(lambda x: ''.join(x), axis=1)

 

其中,df[[‘col2’, ‘col3’]] 表示选取 DataFrame 中的 col2 和 col3 两列数据。apply 方法的 axis 参数为 1,表示按行进行操作。lambda 表达式中的 x 为每一行选取的两列数据,”.join(x) 将一行数据中的 col2 和 col3 两列数据拼接成一个字符串。
执行以上代码后,DataFrame 数据将变为:

  col1 col2 col3 concat
0    a    d    g    dg
1    b    e    h    eh
2    c    f    i    fi

 

方法二:使用 apply 和 join 方法
另外一种方法是使用 apply 方法结合 join 方法。代码如下:

df['concat'] = df[['col2', 'col3']].apply(''.join, axis=1)

 

其中,df[[‘col2’, ‘col3’]] 表示选取 DataFrame 中的 col2 和 col3 两列数据,apply 方法中的参数为 join 方法,表示对每一行选取的两列数据进行字符串拼接。执行以上代码后,DataFrame 数据将和方法一的结果相同。
需要注意的是,以上两种方法都是将指定列的数据拼接成一个字符串,如果需要在拼接的字符串中添加分隔符,只需在 join 方法中加入分隔符即可。例如,以下代码将指定列使用逗号 , 进行拼接:

df['concat'] = df[['col2', 'col3']].apply(lambda x: ','.join(x), axis=1)

 

   
 
 

为你推荐
Ta的个人站点

mb发布文章164篇


imcn微信公众号

分类