📅  最后修改于: 2023-12-03 15:07:45.323000             🧑  作者: Mango
在数据分析和处理过程中,经常需要将两个或多个文本列合并为一个列,以便更好地分析和可视化数据。在 Pandas 中,可以使用 pandas.Series.str.cat()
方法、 pandas.Series.str.cat()
方法、pandas.concat()
函数和 pandas.DataFrame.apply()
方法等方式实现将两个文本列合并为一个列。
pandas.Series.str.cat()
方法pandas.Series.str.cat()
方法可以将两个文本列按指定的分隔符连接起来,返回一个新的文本列。
import pandas as pd
# 创建示例数据集
df = pd.DataFrame({
"first_name": ["John", "Mary", "Tom", "Jane"],
"last_name": ["Doe", "Smith", "Lee", "Brown"]
})
# 将 first_name 和 last_name 列连接为 full_name 列
df["full_name"] = df["first_name"].str.cat(df["last_name"], sep=" ")
该示例代码将 first_name
列和 last_name
列连接,用空格分隔,生成一个新的 full_name
列。
pandas.Series.str.cat()
方法pandas.Series.str.cat()
方法可以将两个文本列按指定的分隔符连接起来,返回一个新的文本列。
import pandas as pd
# 创建示例数据集
df = pd.DataFrame({
"first_name": ["John", "Mary", "Tom", "Jane"],
"last_name": ["Doe", "Smith", "Lee", "Brown"]
})
# 将 first_name 和 last_name 列连接为 full_name 列
df["full_name"] = df["first_name"].str.cat(df["last_name"], sep=" ")
该示例代码将 first_name
列和 last_name
列连接,用空格分隔,生成一个新的 full_name
列。
pandas.concat()
函数pandas.concat()
函数可以将两个或多个列水平拼接起来,返回一个新的 DataFrame,要求拼接的列数和行数必须一致。
import pandas as pd
# 创建示例数据集
df = pd.DataFrame({
"first_name": ["John", "Mary", "Tom", "Jane"],
"middle_name": ["", "Linda", "", ""],
"last_name": ["Doe", "Smith", "Lee", "Brown"]
})
# 将 first_name、middle_name 和 last_name 列连接为 full_name 列
df["full_name"] = pd.concat([df["first_name"], df["middle_name"], df["last_name"]], axis=1).apply(
lambda x: " ".join(x.dropna().astype(str).values),
axis=1
)
该示例代码将 first_name
、middle_name
和 last_name
列连接,生成一个新的 full_name
列。其中,pd.concat([df["first_name"], df["middle_name"], df["last_name"]], axis=1)
将三个列水平连接,apply()
函数沿着行轴应用 lambda
函数,将每一行转换为字符串。
以上介绍了使用 pandas.Series.str.cat()
方法、pandas.concat()
函数和 pandas.DataFrame.apply()
方法将两个文本列合并为一个列的方法。在实际应用中,可以根据数据特点选择适合的方法进行文本列的合并。