我有這個有 4 列的資料框。我想在一個單獨的列中提取 resourceName (即 IDs )。我嘗試了各種方法和回圈,但無法將其分開。
資料集:
| 用戶名 | 活動名稱 | 資源 |
|---|---|---|
| XYZ-DEV_ENV_POST_function | 停止實體 | [{"resourceType":"AWS::EC2::Instance","re??sourceName":"i-05fbb7a"}] |
| XYZ-DEV_ENV_POST_function | 啟動實體 | [{"resourceType":"AWS::EC2::Instance","re??sourceName":"i-08bd2475"},{"resourceType":"AWS::EC2::Instance","re??sourceName":"i-0fd69dc1 "},{"resourceType":"AWS::EC2::Instance","re??sourceName":"i-0174dd38aea"}] |
我想要一個更多的列 ID,它將具有來自 Resource 列的 IDS,并且看起來像這樣:
| 用戶名 | 活動名稱 | 資源 | 身份識別系統 |
|---|---|---|---|
| XYZ-DEV_ENV_POST_function | 停止實體 | [{"resourceType":"AWS::EC2::Instance","re??sourceName":"i-05fbb7a"}] | i-05fbb7a" |
| XYZ-DEV_ENV_POST_function | 啟動實體 | [{"resourceType":"AWS::EC2::Instance","re??sourceName":"i-08bd2475"},{"resourceType":"AWS::EC2::Instance","re??sourceName":"i-0fd69dc1 "},{"resourceType":"AWS::EC2::Instance","re??sourceName":"i-0174dd38aea"}] | i-08bd2475 , i-0fd69dc1 , i-0174 |
這是 data.head(2).to_dict() 的輸出:
{'日期':{0:'28-02-2022',1:'28-02-2022'},'事件名稱':{0:'StopInstances',1:'StartInstances'},'資源': { 0: '[{"resourceType":"AWS::EC2::Instance","re??sourceName":"i-05fbb7a"}]', 1: '[{"resourceType":"AWS::EC2::Instance ","re??sourceName":"i-08bd2475"},{"resourceType":"AWS::EC2::Instance","re??sourceName":"i-0fd69dc1"},{"resourceType":"AWS::EC2: :Instance","re??sourceName":"i-0174dd38aea"}]'}, '用戶名': {0: 'XYZ-DEV_ENV_POST_function', 1: 'XYZ-DEV_ENV_POST_function'}}
謝謝并恭祝安康
uj5u.com熱心網友回復:
df['ID'] = df['Resources'].apply(lambda x: ','.join([i['resourceName'] for i in eval(x)]))
Date ... ID
0 28-02-2022 ... i-05fbb7a
1 28-02-2022 ... i-08bd2475,i-0fd69dc1,i-0174dd38aea
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/464373.html
標籤:python-3.x 熊猫 列表 数据框 字典
