【问题标题】:Mapping in multiple columns多列映射
【发布时间】:2020-08-31 06:04:13
【问题描述】:
title_query = """SELECT ean, productTitle FROM `xxlhoreca-bi.PriceSearch_BackUp.XXL_Price_All`"""
title_df = client.query(title_query).to_dataframe()
final_result['productTitle'] = final_result['ean'].map(title_df.set_index('ean')['productTitle'])

我有一个包含重复 EAN 的表(其他列略有不同),其中一些 productTitle 为空,我将 productTitle 用于那些没有标题但具有匹配 EAN 的表。

但是,现在我已经更新了数据并且我有多个 EAN + 商店。我想匹配 EAN+shop,然后添加缺少的标题。

类似:

      ean | productTitle | shop 
----------+--------------+-------
      123 |  Table       |   FR
      123 |              |   FR
      123 |  Tisch       |   DE
      123 |              |   DE

我希望输出是这样的:

      ean | productTitle | shop 
----------+--------------+-------
      123 |  Table       |   FR
      123 |  Table       |   FR
      123 |  Tisch       |   DE
      123 |  Table       |   DE

我试过这样:

title_query = """SELECT ean, shop, productTitle FROM `xxlhoreca-bi.PriceSearch_BackUp.XXL_Price_All`"""
title_df = client.query(title_query).to_dataframe()
final_result['productTitle'] = final_result['ean'].map(title_df.set_index('ean','shop')['productTitle'])

但出现错误:

pandas.core.indexes.base.InvalidIndexError: Reindexing only valid with uniquely valued Index objects

任何帮助将不胜感激

【问题讨论】:

    标签: python sql pandas indexing mapping


    【解决方案1】:

    你试过了吗

       title_df["ean"=="123"]["productTitle"] = "Table"
    

    【讨论】:

    • 不能这样,因为大约有5000行。
    猜你喜欢
    • 2023-03-14
    • 2020-09-01
    • 1970-01-01
    • 2021-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多