【问题标题】:Pandas - List out data columns in new columns using GroupbyPandas - 使用 Groupby 列出新列中的数据列
【发布时间】:2015-12-14 17:02:22
【问题描述】:

我需要根据 groupby 结果添加新列。以以下数据框为例。

 ID      City      
 234x    Lima
 342x    Rica
 234x    Rio
 333x    NYC
 333x    SF

我一直要使用 group_by 来获取计数:

df_GroupBy = pd.DataFrame({'count':df.groupby([ "ID"]).size()}).reset_index()

这给出了一个输出:

 ID       Count
234x       2
342x       1
333x       2

我现在想做的是得到这个输出:

 ID       City     City_2
234x       Lima     Rio
342x       Rica      
333x       NYC      SF

我查看了Transformmap,但没有取得多大成功。感谢您的帮助。

【问题讨论】:

    标签: python pandas group-by dataframe


    【解决方案1】:

    你可以

    cities = df.groupby('ID')['City'].apply(lambda x: pd.Series([city for city in x])).unstack()
    
             0    1
    ID             
    234x  Lima  Rio
    333x   NYC   SF
    342x  Rica  NaN
    

    【讨论】:

    • 谢谢。这适用于提供的示例。我的主要意图是跨多个列组合。例如,如果输入数据有 ['ID', 'City1', 'City2'..'CityN'] 列,您会建议什么?
    • 这会略有不同,可能会添加一个准备步骤 - 您介意发布一个包含示例数据的新问题以便我说明吗?
    • 很遗憾,我每 90 分钟只能发帖一次。你能在这里发布你的解决方案吗?谢谢。
    猜你喜欢
    • 2017-12-20
    • 2023-01-17
    • 1970-01-01
    • 2017-03-18
    • 2018-12-20
    • 2017-06-07
    • 2017-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多