Pandas Dataframe中合并两列文本的方法
在本文中,我们将介绍如何使用Pandas Dataframe中的方法将两个文本列合并为一个新的列。
我们假设有一个包含以下内容的数据框:
| Name | LastName |
|---|---|
| John | Smith |
| Jane | Roberts |
| Mike | Lee |
我们的目标是将Name和LastName列合并为一个新列FullName,格式为“LastName,Name”。
阅读更多:Pandas 教程
方法一
import pandas as pd
# 创建数据框
data = {
'Name': ['John', 'Jane', 'Mike'],
'LastName': ['Smith', 'Roberts', 'Lee']
}
df = pd.DataFrame(data)
# 合并列
df['FullName'] = df['LastName'] + ', ' + df['Name']
print(df)
这将输出以下结果:
| Name | LastName | FullName |
|---|---|---|
| John | Smith | Smith, John |
| Jane | Roberts | Roberts, Jane |
| Mike | Lee | Lee, Mike |
在这种情况下,我们可以直接将两列字符串相加,使用’,’将它们分开。
方法二
import pandas as pd
# 创建数据框
data = {
'Name': ['John', 'Jane', 'Mike'],
'LastName': ['Smith', 'Roberts', 'Lee']
}
df = pd.DataFrame(data)
# 定义函数
def combine_names(row):
return row['LastName'] + ', ' + row['Name']
# 合并列
df['FullName'] = df.apply(combine_names, axis=1)
print(df)
在这种情况下,我们需要定义一个函数来合并两个列中的字符串。使用.apply()方法和axis=1参数将函数应用于每一行。
方法三
import pandas as pd
# 创建数据框
data = {
'Name': ['John', 'Jane', 'Mike'],
'LastName': ['Smith', 'Roberts', 'Lee']
}
df = pd.DataFrame(data)
# 合并列
df['FullName'] = df[['LastName', 'Name']].agg(', '.join, axis=1)
print(df)
这将输出与前两种方法相同的结果。 但是,它展示了解包列表(list unpacking)和.agg()方法的使用。 我们使用列表['LastName', 'Name']来选择要将其合并的列。 .agg()方法将这两列作为输入,使用字符串', '在它们之间添加逗号和空格。
总结
在本文中,我们介绍了三种将两个文本列合并为一个新列的方法。我们可以直接将两列相加或使用自定义函数。例如,.agg()方法和解包列表也可以用于将多列合并为一个新列。无论哪种方法,Pandas使合并列变得非常简单。
极客笔记