在数据处理中,经常会遇到需要根据一列中的数据来更新另一列的情况。如果更新的条件是基于子字符串的匹配,可以使用Pandas库中的str.contains()
方法结合条件赋值来实现。以下是一个基本的示例,展示了如何根据一列中的子字符串来更新另一列的值。
假设我们有一个DataFrame df
,其中包含两列:source
和status
。我们想要根据source
列中的子字符串来更新status
列的值。
import pandas as pd
# 创建示例DataFrame
data = {
'source': ['apple_store', 'google_play', 'amazon', 'apple_store_v2'],
'status': ['unknown', 'unknown', 'unknown', 'unknown']
}
df = pd.DataFrame(data)
# 根据'source'列中的子字符串更新'status'列
df.loc[df['source'].str.contains('apple'), 'status'] = 'approved'
df.loc[df['source'].str.contains('google'), 'status'] = 'pending'
df.loc[df['source'].str.contains('amazon'), 'status'] = 'rejected'
print(df)
source status
0 apple_store approved
1 google_play pending
2 amazon rejected
3 apple_store_v2 approved
str.contains()
时,默认情况下区分大小写。如果需要进行不区分大小写的匹配,可以设置参数case=False
。通过上述方法,可以灵活地根据数据中的特定模式来更新DataFrame中的值,这对于数据分析和处理任务非常有用。
领取专属 10元无门槛券
手把手带您无忧上云