按特定列值對數據框進行分組

傑皮

我有一個包含很多列的熊貓數據框。我想創建一個只有兩列的新數據框。第一列應包含出現在原始數據框特定列中的所有值。第二列應包含與第一列的值匹配的原始數據框的所有其他數據。

例如,我的輸入數據框的結構如下:

    Name            Menu                City
0   Foo Burgers     Burgers and Fries   New York
1   Cheesy's        Cheeseburgers       New York
2   Buggy Burgers   Insect Burgers      London
3   Fry Guy         Fries               London
4   Beermania       Beer                Berlin

在代碼中:

df = pd.DataFrame([["Foo Burgers", "Burgers and Fries", "New York"], 
                   ["Cheesy's", "Cheeseburgers", "New York"],
                   ["Buggy Burgers", "Insect Burgers", "London"],
                   ["Fry Guy", "Fries", "London"],
                   ["Beermania", "Beer", "Munich"]], columns=["Name","Menu","City"])

如何輕鬆地將數據框轉換為以下目標結構?

    City        Restaurants
0   New York    [{"Name": "Foo Burgers", "Menu": "Burgers and Fries"}, {"Name":"Cheesy's", "Menu": "Cheeseburgers"}]
1   London      [{"Name": "Buggy Burgers", "Menu": "Insect Burgers"}, {"Name":"Fry Guy", "Menu": "Fries"}]
2   Munich      [{'Name': 'Beermania', 'Menu': 'Beer'}]

在代碼中:

goal_df = pd.DataFrame([["New York", [{"Name": "Foo Burgers", "Menu": "Burgers and Fries"}, {"Name":"Cheesy's", "Menu": "Cheeseburgers"}], ],
                        ["London", [{"Name": "Buggy Burgers", "Menu": "Insect Burgers"}, {"Name":"Fry Guy", "Menu": "Fries"}], ],
                        ["Munich", [{"Name": "Beermania", "Menu": "Beer"}], ]], columns=["City", "Restaurants"])
廣黃

你可以做一個groupby().aggto_dict

(df.drop('City', axis=1).groupby(df['City'])
   .apply(lambda x: x.to_dict(orient='records'))
   .reset_index(name='Restaurants')
)

輸出:

       City                                        Restaurants
0    London  [{'Name': 'Buggy Burgers', 'Menu': 'Insect Bur...
1    Munich            [{'Name': 'Beermania', 'Menu': 'Beer'}]
2  New York  [{'Name': 'Foo Burgers', 'Menu': 'Burgers and ...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

按列值對數據進行分組

按兩列對熊貓數據框進行分組而不對其進行匯總

按列值對結果集數據的多行進行分組

按特定鍵對嵌套數組數據進行分組

按其他數據框對數據框列進行分組併計算聚合列的加權平均值

對熊貓數據框列進行分組和計數

如何以特定方式對我的數據框進行分組和轉置?

對來自熊貓數據框的連續值進行分組

對列表中的數據框列進行分組

數據框按列值的計數分組

如何根據特定函數對數組進行分組?

如何按標籤對數據進行分組並返回計算值列表?

使用分類字符串對熊貓數據框進行分組

如何按某些屬性值對對像數組進行分組

根據條件(包含特定字符串)對數據進行分組

R:按重複數字的數字列對數據框進行排序

根據pandas中的字典對數據框的行進行分組並對相應的分子求和

在熊貓中按週對數據透視表日期進行分組

使用熊貓按條件對數據進行分組

按部分鍵對json數據進行分組

按屬性對 json 數據進行分組 - vue.js

如何使用 tidyr/dplyr 對數據框的元素進行分組和選擇

使用 dplyr 根據 R 中的特定列對數據框進行排序

Javascript按值對對象進行分組

按列名對數據框中的值進行排序

根據值聚合對行進行分組

如何根據字符串層次結構對 Pandas 數據框進行分組?

Pandas 按 1 的值對列進行分組並按頻率排序

如何按第一個字符和值對多列數據進行排序