【问题标题】:How to put keys of a dictionary as a column value in pandas dataframe?如何将字典的键作为熊猫数据框中的列值?
【发布时间】:2019-02-04 01:35:20
【问题描述】:

我有两个数据框 df & df1,并且我已将 df1 转换为字典,因为它只包含两列。如下图:

import pandas as pandas
df = pd.read_csv('data.csv')
df['company'] = 0
df1 = pd.read_csv('data1.csv')

mydict = dict(zip(df1.agent_id, df1.company))

for x in df.agent_id:
   for k,v in mydict.items():
      if k == x:
        df.loc[df['company']] = v

现在我想将mydict 的值作为df['company'] 列中的值附加,如果它满足以下条件。我怎样才能做到这一点?有人可以解释吗?我知道我只是缺少一个简单的逻辑。不过我想不通。

如果df是这个

        agent_id
0            184
1            182
2            113
3            157
4            137
5            199
6            181

mydict 是这样的:

mydict = {184: 'LuxuryPods',
          113: 'smartflat.com',
          157: 'ApartaMinutes',
          199: 'HouseMouse',
          181: 'LuxuryPods',
          182: 'Ramax',
          137: 'LuxuryPods'}

那么生成的df 应该如下所示:

        agent_id      company
0            184      LuxuryPods
1            182      Ramax
2            113      smartflat.com
3            157      ApartaMinutes
4            137      LuxuryPods
5            199      HouseMouse
6            181      LuxuryPods

【问题讨论】:

    标签: python-3.x pandas dataframe dictionary


    【解决方案1】:

    试试下面的代码

    df = pd.DataFrame({'agent_id': [184, 182, 113, 157]})
    
    mydict = {184: 'LuxuryPods',
              113: 'smartflat.com',
              157: 'ApartaMinutes',
              182: 'Ramax'}
    
    df['company'] = df['agent_id'].map(mydict)
    

    输出

       agent_id        company
    0       184     LuxuryPods
    1       182          Ramax
    2       113  smartflat.com
    3       157  ApartaMinutes
    

    关键基本上是使用map函数将agent_id中的所有值映射到其对应的公司。使用map 函数,您还可以指定您想要的值,以防找不到匹配项。参数是na_action

    【讨论】:

      猜你喜欢
      • 2021-10-26
      • 2020-03-28
      • 1970-01-01
      • 1970-01-01
      • 2021-12-12
      • 1970-01-01
      • 1970-01-01
      • 2021-11-19
      • 2015-06-02
      相关资源
      最近更新 更多