【发布时间】:2020-10-01 18:58:57
【问题描述】:
我正在编写基于列值自动分配变量名称的代码。该列包含一个长字符串,其中包含品牌和子品牌,需要用下划线分隔。
如:
data["column"][1] = "Sally's Seashells"
我需要改变它,使它看起来像这样:
data["column"][1] = "Sally's_Seashells"
我知道replace() 如果您只输入确切的品牌就可以工作,但我想为多个不同的数据集/品牌保持通用性。我希望有可能有一个变量从用户那里获取输入,该变量标识需要用下划线替换的字符串,例如:
Brand = "Sally"
data["column"].replace(Brand, Brand + '_', inplace = True)
>>"Sally's_Seashells"
这样,我可以有一个适用于所有不同品牌的脚本,只需要最少的非程序员友好的调整。
另外,是否可以将replace() 排除在列表之外?如:
Brand_List = ["Sally's", "Tim's", "Bill Bob's"]
data["column"].replace(for brand in Brand_List: brand, brand + '_', inplace = True)
这将使用户识别多个品牌,然后在识别时添加下划线:
data["column"][1] = "Sally's_Seashells"
data["column"][2] = "Tim's_Towels"
data["column"][3] = "Bill Bob's_Beach Bums"
data["column"][4] = "Justin's Jams"
如果不替换,应用 lambda 函数是否可以用下划线替换 Brand_List 中的品牌?
我的主要问题不是所有品牌都有相同的命名格式,所以我不能用下划线替换空格以获得正确的名称格式。
感谢任何建议!
【问题讨论】:
-
请分享数据和预期输出
标签: python pandas replace rename