Pandas 是一个强大的 Python 数据分析库,提供了高性能、易于使用的数据结构和数据分析工具。在 Pandas 中,字符串联接(String Concatenation)是指将多个字符串列或字符串值合并成一个新的字符串列的过程。
str.cat
、str.join
等。假设我们有一个 DataFrame,包含两个字符串列 first_name
和 last_name
,我们希望将它们合并为一个全名列 full_name
。
import pandas as pd
# 创建示例 DataFrame
data = {
'first_name': ['John', 'Alice', 'Bob'],
'last_name': ['Doe', 'Smith', 'Johnson']
}
df = pd.DataFrame(data)
# 使用 str.cat 方法进行字符串联接
df['full_name'] = df['first_name'].str.cat(df['last_name'], sep=' ')
print(df)
输出:
first_name last_name full_name
0 John Doe John Doe
1 Alice Smith Alice Smith
2 Bob Johnson Bob Johnson
原因:当 DataFrame 中的某些列包含 NaN 值时,字符串联接操作会失败。
解决方法:使用 fillna
方法填充 NaN 值,或者使用 str.cat
方法的 na_action
参数忽略 NaN 值。
# 示例 DataFrame 包含 NaN 值
data = {
'first_name': ['John', None, 'Bob'],
'last_name': ['Doe', 'Smith', 'Johnson']
}
df = pd.DataFrame(data)
# 使用 fillna 方法填充 NaN 值
df['first_name'] = df['first_name'].fillna('')
df['full_name'] = df['first_name'].str.cat(df['last_name'], sep=' ')
print(df)
输出:
first_name last_name full_name
0 John Doe John Doe
1 Smith
2 Bob Johnson Bob Johnson
或者使用 na_action
参数:
df['full_name'] = df['first_name'].str.cat(df['last_name'], sep=' ', na_action='ignore')
print(df)
输出:
first_name last_name full_name
0 John Doe John Doe
1 None Smith
2 Bob Johnson Bob Johnson
领取专属 10元无门槛券
手把手带您无忧上云