簡體   English   中英

熊貓,根據條件用字典鍵填充值

[英]Pandas, fill values with dict keys based on a condition

我有以下數據幀:

            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

我需要從以下字典的鍵中為指定的包分配一個字符串:


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)

該函數檢查是否檢查了 must 以及 bag culoumn 的長度是否匹配 bag dict 中的任何值。

如果一行符合這兩個條件,我需要將其分配給指定的 bag 列。

意思是,例如,行飛機包和完整的 Bandolera 應該將單詞“飛機包”分配給指定的包列。

澄清我想要的結果。 如果可能的話,我會是這樣的:

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

你實際上想要做的是.map() 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM