首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在字典中为每一行添加新列

在字典中为每一行添加新列
EN

Stack Overflow用户
提问于 2022-05-23 11:30:39
回答 2查看 28关注 0票数 0

我想从字典中添加列,在字典中随机生成键,对于数据的每一行,都应该添加键的值。

代码语言:javascript
复制
products = {'Blue Racks': 6, 'HPT': 6, 'Plastic Pallet': 40, 'Trolley': 48}

数据格式如下所示:

代码语言:javascript
复制
                  tag epc                   code             Location  
0           0  E200001B2003006506902124  PPRFP.1T22AD0001      Goa   
1           1  E200001B2001007523803291  PPRFP.1T22AD0002      Goa   
2           2  E200001B2003005907402139  PPRFP.1T22AD0003      Goa   
3           3  E200001B200302290510CF16  PPRFP.1T22AD0004      Goa   
4           4  E200001B20010114231054DD  PPRFP.1T22AD0005      Goa   

我该怎么做呢?

预期结果:

代码语言:javascript
复制
         tag epc                   code           Location Blue Racks HPT Plastic Pallet
  E200001B2003006506902124  PPRFP.1T22AD0001      Goa        6  6 40
  E200001B2001007523803291  PPRFP.1T22AD0002      Goa        6  6  40
  E200001B2003005907402139  PPRFP.1T22AD0003      Goa        6  6 40
  E200001B200302290510CF16  PPRFP.1T22AD0004      Goa        6  6 40
  E200001B20010114231054DD  PPRFP.1T22AD0005      Goa        6  6  40
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-05-23 11:37:39

您可以从字典中创建一个DataFrame,并使用交叉merge

代码语言:javascript
复制
df2 = df.merge(pd.DataFrame(products, index=[0]), how='cross')
# or
# df.merge(pd.DataFrame([products]), how='cross')

产出:

代码语言:javascript
复制
   tag                       epc              code Location  Blue Racks  HPT  \
0    0  E200001B2003006506902124  PPRFP.1T22AD0001      Goa           6    6   
1    1  E200001B2001007523803291  PPRFP.1T22AD0002      Goa           6    6   
2    2  E200001B2003005907402139  PPRFP.1T22AD0003      Goa           6    6   
3    3  E200001B200302290510CF16  PPRFP.1T22AD0004      Goa           6    6   
4    4  E200001B20010114231054DD  PPRFP.1T22AD0005      Goa           6    6   

   Plastic Pallet  Trolley  
0              40       48  
1              40       48  
2              40       48  
3              40       48  
4              40       48  

如果字典中存在原始列,则重新命名:

代码语言:javascript
复制
df2 = (df.rename(columns=lambda x: x+'_original' if x in products else x)
         .merge(pd.DataFrame(products, index=[0]), how='cross')
       )
票数 1
EN

Stack Overflow用户

发布于 2022-05-23 11:40:49

我想,如果您使用熊猫,您可以尝试读取字典中的键和值,然后为每个键添加5倍于相应值的值:

代码语言:javascript
复制
for key, value in products :
    new_column_value = []
    for i in range(5):
        new_column_value.append(value)
    df[key] = new_column_value
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72347807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档