【问题标题】:How to add value to a pandas dataframe column by row depending a key value in a dictionary?如何根据字典中的键值逐行向熊猫数据框添加值?
【发布时间】:2020-06-23 23:24:33
【问题描述】:

我有一本字典,其中状态的值为 c

stateC =    {
  "Washington" : 3,
  "New York" :  5,
  "Houston":  11,
}

和一个数据框:

State       b    
Washington  09   
New York    100    
Houston     55   

我想根据column c 中字典的键值以及在b/c 中具有值的column d 整合该列

State       b    c   d
Washington  09   3   3
New York    100  5   20  
Houston     55   11  5

如何在熊猫中做到这一点?

【问题讨论】:

标签: python pandas


【解决方案1】:
df['c'] = df['State'].map(stateC)
df['d'] = df['b']/df['c']

您可以创建一个与 State 列相同的新列,然后映射该字典。 d 列很容易解释。

【讨论】:

  • 使用地图非常简单。谢谢
【解决方案2】:

试试:

df['c']=df['State'].map(stateC)
df['d']=df['b'].astype(int).div(df['c'])

【讨论】:

    【解决方案3】:

    试试这个代码:

    df['c'] = df['State'].apply(lambda x: stateC[x]) 
    df['d'] = df[['b','c']].apply(lambda x: x[0]//x[1], axis=1)
    df
    

    【讨论】:

      猜你喜欢
      • 2021-12-25
      • 1970-01-01
      • 2021-12-12
      • 1970-01-01
      • 2015-12-13
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 2018-05-26
      相关资源
      最近更新 更多