Pandas 将Pandas dataframe中的两列文本合并
在本文中,我们将介绍如何将Pandas dataframe中的两列文本合并为一列。
阅读更多:Pandas 教程
为什么要将两列文本合并为一列?
在某些情况下,需要将两列文本合并为一列。这可能是因为需要在单独的列中查找信息时更方便,或者因为只需要以这种方式查看数据。
例如,假设你有一个包含名字和姓氏的Pandas dataframe。通常,每个人的信息都需要根据其名字和姓氏进行查找。通过将两列文本合并为一列,您可以更轻松地查找每个人的信息。
如何将两列文本合并为一列?
Pandas dataframe有一个“.str.cat()”方法,可用于合并两个列:
import pandas as pd
df = pd.DataFrame({'first_name': ['John', 'Jane', 'Bob'],
'last_name': ['Doe', 'Doe', 'Smith']})
df['full_name'] = df['first_name'].str.cat(df['last_name'], sep=' ')
在这个例子中,我们首先创建了一个包含名字和姓氏的dataframe。接下来,我们使用“.str.cat()”方法将名字和姓氏合并,使用空格作为分隔符,并将其添加到dataframe的新列中。
输出结果如下:
first_name last_name full_name
0 John Doe John Doe
1 Jane Doe Jane Doe
2 Bob Smith Bob Smith
我们可以看到,新的“full_name”列现在包含所有人的全名。
合并多个列的文本
如果需要将多个列的文本合并到一个列中,我们可以简单地在“.str.cat()”方法中传递所有列:
df['full_name'] = df[['first_name', 'middle_name', 'last_name']].apply(lambda x: ' '.join(x.dropna().astype(str)), axis=1)
在这个例子中,我们首先创建一个包含所有名字列的dataframe。接下来,我们使用“.apply()”方法将每一行中的所有列(通过“dropna()”过滤掉缺失值)连接起来。
输出结果如下:
first_name middle_name last_name full_name
0 John None Doe John Doe
1 Jane Mary Doe Jane Mary Doe
2 Bob Lee Smith Bob Lee Smith
3 Alice Marlene Wong Alice Marlene Wong
我们可以看到,新的“full_name”列现在包含所有人的全名。
总结
在本文中,我们介绍了如何使用Pandas将文本dataframe中的两列或多列合并为一列。此过程可为数据分析和数据处理带来便利。请根据您的具体需求使用正确的方法。
极客教程