【问题标题】:Pandas - Merging 2 rows into 1 using [duplicate]Pandas - 使用 [重复] 将 2 行合并为 1
【发布时间】:2019-07-22 16:03:33
【问题描述】:

下面是我拥有的数据框的一个小例子。每个用户有 2 行,我想将 2 合并为 1 行。

(原始数据框)

USER       DETAIL          TEAM         VALUE
JohnDoe    Disponibily     Architect    107
JohnDoe    Capacity        Architect    240
JamesDean  Disponibily     Coder        80
JamesDean  Capacity        Coder        110

我正在尝试用 pandas 实现这样的目标:

USER       TEAM            Disponibily  Capacity
JohnDoe    Architect       107          240
JamesDean  Coder           80           110

任何帮助将不胜感激。

【问题讨论】:

  • 使用 unstack,例如:df.set_index(['USER', 'TEAM', 'DETAIL'], inplace=True) 然后df.unstack(-1)。其实我只是在写一个答案,当问题被标记为重复时。
  • 请将您的代码放在问题中,以便其他人可以更快地重现/解决问题。

标签: python python-3.x pandas pandas-groupby


【解决方案1】:

使用pivot_table

df = pd.DataFrame(data={"USER":["JohnDoe","JohnDoe","JamesDean","JamesDean"],
                       "DETAIL":["Disponibily","Capacity","Disponibily","Capacity"],
                       "TEAM":["Architect","Architect","Coder","Coder"],
                       "VALUE":[107,240,80,110]})
res = pd.pivot_table(df,index=['USER','TEAM'],columns='DETAIL',values='VALUE').reset_index()
res.columns.name = ''
        USER    TEAM    Capacity    Disponibily
0    JamesDean  Coder       110       80
1    JohnDoe    Architect   240       107

【讨论】:

    猜你喜欢
    • 2021-02-08
    • 2012-06-26
    • 2023-03-05
    • 2012-06-20
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    • 2022-08-17
    相关资源
    最近更新 更多