Python Dataframe column matching



我有两列A&B.A包含用"_"分隔的文本值,B有一些与A.相关的描述

示例:

*Col         Terms
AB_BCN_PRC   About Bitcoin Price
AC_CR_STT    Account credit Statement
A6_AT_MD     Audi Automatic Model*

我需要映射A和B,所以将来如果A中出现新值,它应该自动框B

示例:

*A         B
AB_CR_STT  About credit Statement*

有什么想法或可能的方法来完成这项工作吗?

如果你能定义一个好的完整映射字典(每个名称用_分隔为一个键,这个名称代表的文本作为一个值(,它可以很容易地实现,最后我用panda组合成你的格式。在你的例子中,你也可以直接使用print,主要关注函数gen_terms,通过你提供的名称返回全文,您可以在此基础上根据所需的函数进行扩展(请确保传入名称中的每个项目(以_分隔(都是您在col_map中定义的项目(:

import pandas as pd
def gen_terms(col):
col_map = {
"AB": "About",
"BCN": "Bitcoin",
"PRC": "Price",
"AC": "Account",
"CR": "credit",
"STT": "Statement",
"A6": "Audi",
"AT": "Automatic",
"MD": "Model",
}
spans = col.split("_")
return " ".join([col_map.get(data) for data in spans])

name = "AB_CR_STT"
df = pd.DataFrame({"A": ["AB_CR_STT"], "B": [gen_terms("AB_CR_STT")]})
print(df)
#            A                       B
# 0  AB_CR_STT  About credit Statement

最新更新