我现在有一个dataframe,看起来像这样:

df = pd.DataFrame({'A': [1,1,2,2,2,2,3],
                   'B':['a','b','c','d','e','f','g'],
                   'C':['1','2','3','4','5','6','7']})

df2 = df.groupby('A')['B'].apply(list).reset_index()产生:

   A             B
0  1        [a, b]
1  2  [c, d, e, f]
2  3           [g]

我如何制作这个?

   A             B            C
0  1        [a, b]       [1, 2]
1  2  [c, d, e, f] [3, 4, 5, 6]
2  3           [g]          [7]

推荐答案

你可以这样做

df.groupby('A', as_index=False).agg(B=("B", list), C=("C", list))
   A             B             C
0  1        [a, b]        [1, 2]
1  2  [c, d, e, f]  [3, 4, 5, 6]
2  3           [g]           [7]

或等效

pd.pivot_table(data=df, index="A", values=["B", "C"], aggfunc=list).reset_index()

Python相关问答推荐

OdooElectron 商务产品详情页面中add_qty参数动态更新

使用decorator 重复超载

使用decorator 自动继承父类

来自ARIMA结果的模型方程

按 struct 值对Polars列表[struct[]]排序

添加包含中具有任何值的其他列的计数的列

对Numpy函数进行载体化

非常奇怪:tzLocal.get_Localzone()基于python3别名的不同输出?

如何获取TFIDF Transformer中的值?

Streamlit应用程序中的Plotly条形图中未正确显示Y轴刻度

如何调整QscrollArea以正确显示内部正在变化的Qgridlayout?

有没有一种方法可以从python的pussompy比较结果中提取文本?

Python—从np.array中 Select 复杂的列子集

我想一列Panadas的Rashrame,这是一个URL,我保存为CSV,可以直接点击

在Django admin中自动完成相关字段筛选

计算天数

使用Python查找、替换和调整PDF中的图像'

ConversationalRetrivalChain引发键错误

人口全部乱序 - Python—Matplotlib—映射

Gekko中基于时间的间隔约束