【问题标题】:Pandas changing cell values dependent on other cell values in same row熊猫根据同一行中的其他单元格值更改单元格值
【发布时间】:2018-06-22 19:30:49
【问题描述】:

我正在处理一个数据框,其中我的一个列需要根据一组标准和行中其他列提供的数据进行更新和更改。

有问题的行是标价货币。

如果它前面的列(价格手册名称)包含 Amer,我希望将标价货币更新为美元列表。如果价格手册没有显示 Amer,我希望将货币更新为 Intl USD。否则,如果价格手册名称中包含 GBP,我只想将其更改为 UK list,并将 EUR 更改为 Euro List。

我尝试编写一个小的 for 循环来遍历每个标价货币并根据价格手册名称的内容对其进行更新,但它实际上并没有对列中的单元格做任何事情。

任何帮助或指导将不胜感激!

for column in datagrouped['List Price Currency']:
    if 'List Price Currency' == "USD":
        if 'Price Book Name'.str.contains("Amer"):
             'List Price Currency' == "US List"
        else: 'List Price Currency' == "Intl USD"
    if "List Price Currency" == "GBP":
             "List Price Currency" == "UK List"
    if "List Price Currency" == "EUR":
             "List Pricy Currency" == "Euro List"

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    如果您知道 Book_Name_Price 列中的所有货币,您可以使用如下所示的映射函数:

        import pandas as pd
    
        # Create data frame
        price_book_name = ['Amer', 'I-USD', 'GBP', 'EUR', 'EUR', 'Amer' , 'GBP', 'I-USD']
        df = pd.DataFrame({'Price_Book_Name': price_book_name})
    
        # Create an empty column by broadcasting
        df['List_Price_Currency'] = ''
    
        # Create a dictionary to map onto data frame
        curr_cat = {'Amer': 'US List', 'I-USD': 'Intl USD', 'GBP': 'UK list', 'EUR': 'Euro list'}
    
        # Map dictionary on to List_Price_Currency
        df['List_Price_Currency'] = df['Price_Book_Name'].map(curr_cat)
    
        print(df)
    
          Price_Book_Name List_Price_Currency
        0            Amer             US List
        1           I-USD            Intl USD
        2             GBP             UK list
        3             EUR           Euro list
        4             EUR           Euro list
        5            Amer             US List
        6             GBP             UK list
        7           I-USD            Intl USD
    

    【讨论】:

      猜你喜欢
      • 2016-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多