使用过滤器和正则表达式,可以根据Pandas dataframe中另一个变量的部分文本替换空值。具体步骤如下:
import pandas as pd
import re
data = {'Name': ['John Doe', 'Jane Smith', 'Mike Johnson', 'Sarah Williams'],
'Age': [25, 30, 35, 40],
'City': ['New York', 'London', '', 'Paris']}
df = pd.DataFrame(data)
pattern = '|'.join(df['Name'])
df['City'] = df['City'].replace(r'^\s*$', pd.NA, regex=True)
df['City'] = df['City'].fillna(df['Name'].str.extract(f'({pattern})', expand=False))
在上述代码中,我们首先使用replace
函数将空值替换为pd.NA
,然后使用fillna
函数将"Name"列中的部分文本填充到"City"列中的空值位置。
print(df)
输出结果如下:
Name Age City
0 John Doe 25 New York
1 Jane Smith 30 London
2 Mike Johnson 35 Mike Johnson
3 Sarah Williams 40 Paris
这样,我们根据Pandas dataframe中另一个变量的部分文本成功替换了空值。
关于本问题中涉及到的技术和概念的详细解释如下:
推荐的腾讯云相关产品和产品介绍链接地址如下:
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云