根据条件,使用dict键填充值

2024-05-12 22:58:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据帧:

            Item  Weight  Bags    Must  quantity  must quantity  bags column length   assigned bag
0     planes bag    8.50  planes   v       1              1          6                  None
1  Full Bandolera   3.76  planes   v       3              2          6                  None
2  tail             0.30  planes   0       3              2          6                  None
3  central wing     1.08  planes   0       3              2          6                  None
4  engine           0.44  planes   0       3              2          6                  None
5  height steer     0.12  planes   0       3              2          6                  None
6  dihedral         0.40  planes   0       3              2          6                  None   
7  pods bag         8.72  pods     v       1              1          4                  None
8  Pod              1.74  pods     v       3              2          4                  None
9  optic            0.86  pods     v       2              2          4                  None

我需要从以下dict键为指定的行李分配一个字符串:


bags = {'planes bag': 6,
        'pods bag': 4,
        'ground system bag': 13}

到目前为止,我有一个函数,可以过滤出符合我的条件的行,并通过以下方式填充:

bags_lens = list(bags.values())
        df['assigned bag'] =  df[(df['Must'] != 0) & (df['bags column length'].isin(bags_lens))]
        print(df)

此函数检查是否必须进行检查,以及行李culoumn的长度是否与bags dict中的任何值匹配

如果一行同时符合这两个条件,我需要将其指定给指定的行李列

意思是,例如,行planes bag和full Bandolera应指定单词“planes bag” 到指定的行李列

澄清我想要的结果。 如果可能的话,我会这样做:

df['assigned bag'] =df['Bags'] if df[(df['Must'] != 0) & (df['bags column length'].isin(bags_lens))]

Tags: nonedfcolumnlengthbagsquantitylenspods
1条回答
网友
1楼 · 发布于 2024-05-12 22:58:50

您实际要做的是^{}bags column length添加到此词典:

bags_inv = {
    6: 'planes bag',
    4: 'pods bag',
    13: 'ground system bag'
}

但是,仅在Must不包含'0'(字符串!)的条件下:

df['assigned_bag'] = df.loc[df['Must'] != '0']['bags column length'].map(bags_inv)
0    planes_bag
1    planes_bag
7      pods_bag
8      pods_bag
9      pods_bag
Name: bags_column_length, dtype: object

相关问题 更多 >