我想找到在key1.str.endswith(key2)上合并两个数据帧的最佳方法,示例有时比文字更好:
 i want to merge df1 and df2  on product.str.endswith(color)
 df1:
    index product
    1     a208-BLACK 
    2     a2008-WHITE
    3     x307-PEARL-WHITE
    4     aa-b307-WHITE
 df2:
    index color       code
    1     BLACK       X1001
    2     WHITE       X7005
    3     PEARL-WHITE X7055要获得以下信息:
 df:
    index product            code
    1     a208-BLACK         X1001
    2     a2008-WHITE        X7005
    3     x307-PEARL-WHITE   X7055
    4     aa-b307-WHITE      X7005有什么想法吗?
发布于 2015-03-20 23:30:44
一些简明的解决方案:
import pandas as pd
df1['color'] = df1['product'].apply(lambda x: re.sub('^[^ALPHA:]*-(.*)', '\\1', x))
pd.merge(df1, df2, on='color')
#            product        color   code
#0        a208-BLACK        BLACK  X1001
#1       a2008-WHITE        WHITE  X7005
#2  x307-PEARL-WHITE  PEARL-WHITE  X7055
#3     aa-b307-WHITE        WHITE  X7005https://stackoverflow.com/questions/29169310
复制相似问题