簡體   English   中英

從 Pandas 數據框中的字典列表中獲取值

[英]Get values from a list of dictionaries in a Pandas Dataframe

好的,所以我有一個數據框。 “z”列的每個元素都是一個字典列表。

例如,“z”列的第二行如下所示:

[ {'name': 'Tom', 'hw': [180, 79]},
  {'name': 'Mark', 'hw': [119, 65]} ]

我希望它只包含 'name' 值,在這種情況下,元素將是 Tom 和 Mark 而沒有 'hw' 值。

我嘗試將其轉換為列表,然后每隔一個元素刪除一次,但我丟失了來自同一行的值。 並非每一行都包含相同數量的元素,有些有 2 個名稱,有些可能有 4 個。

通過dict.get使用list comprehension一種方法:

例子

df = pd.DataFrame({'z': [[{'name': 'Tom', 'hw': [180, 79]},
                         {'name': 'Mark', 'hw': [119, 65]}]]})

df['name'] = [[d.get('name') for d in x] for x in df['z']]

[出去]

                                                   z         name
0  [{'name': 'Tom', 'hw': [180, 79]}, {'name': 'M...  [Tom, Mark]

讓我們使用pandas get using series.str.get

df['name']=df.col.str.get('name')
df
                                 col  name
0   {'name': 'Tom', 'hw': [180, 79]}   Tom
1  {'name': 'Mark', 'hw': [119, 65]}  Mark

暫無
暫無

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

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