Python 3.x 将配置单元SQL中的案例转换为Python 3.6 IF else station
我试图从包含产品SKU的列中删除所有扩展。 长度不是恒定的。 唯一的规则是有三个连字符,例如: 101-090-7612-02 实际上,有些扩展名以第四个连字符开头,另一些扩展名以下划线开头 例如: 101-090-7612-02_爱 101-090-762-02-T 我能够通过Hive SQL实现这一点:Python 3.x 将配置单元SQL中的案例转换为Python 3.6 IF else station,python-3.x,conditional,hiveql,Python 3.x,Conditional,Hiveql,我试图从包含产品SKU的列中删除所有扩展。 长度不是恒定的。 唯一的规则是有三个连字符,例如: 101-090-7612-02 实际上,有些扩展名以第四个连字符开头,另一些扩展名以下划线开头 例如: 101-090-7612-02_爱 101-090-762-02-T 我能够通过Hive SQL实现这一点: (CASE WHEN sku RLIKE '_' THEN split(sku ,'[\_]')[0] ELSE concat(split(sku ,'[\-]')[0],'-',s
(CASE WHEN sku RLIKE '_'
THEN split(sku ,'[\_]')[0]
ELSE concat(split(sku ,'[\-]')[0],'-',split(sku ,'[\-]')[1],
'-',split(sku ,'[\-]')[2],'-',split(sku ,'[\-]')[3])
END) AS new_sku
之后,我可以根据新的sku进行分组,并获得所有聚合指标,如销售额、平均销售价格等
当然,我将在dataFrame上应用()函数
…现在我想把这个案例放到Python 3中
非常感谢您的帮助 您可以创建一个python函数,删除不需要的字符并将该函数应用于数据帧
d = {
'sku': ["101-090-762-02-T", "101-090-7612-02_love"]
}
df = pd.DataFrame(data=d)
print df
new_df = df.applymap(lambda sku: "-".join(sku.split("_")[:-1]) if len(sku.split("-")) == 3 else "-".join(sku.split("-")[:-1]))
print new_df
您可以创建一个函数来处理此问题,也可以调用该函数
def remove_ext(sku):
temp = sku.split("-")
return "-".join(sku.split("_")[:-1]) if len(temp) == 3 else "-".join(temp[:-1])
d = {
'sku': ["101-090-762-02-T", "101-090-7612-02_love"]
}
df = pd.DataFrame(data=d)
print df
new_df = df.applymap(lambda x: remove_ext(x))
print new_df
你说的python 3是什么意思?你是说派斯帕克?嗨,高兰。我的目标是在数据帧中使用它。我试图将其作为函数或lambda进行,并将其应用于列。谢谢