如何按列名分组并加入

时间:2019-04-25 17:27:41

标签: python pandas dataframe group-by transpose

我给了我一张Excel工作表,它看起来像这样,要长得多:

Original Version

我必须将其导入到Access中,它绝对需要格式如下所示:

Desired Version

所以我导入了它:

import pandas as pd
df=pd.read_excel(r"XXX")
df

换位。

df.T

我知道我必须使用:

pandas.DataFrame.groupby

由于真实版本中的类别过多,如何在不手动定义每个标题的情况下对具有相同名称的标题进行分组?

编辑:提供图片以供澄清。

1 个答案:

答案 0 :(得分:0)

使用groupby()的一种方法是:

m=df.groupby('CATEGORY')['CHOICE'].apply(list)
n=pd.DataFrame(m.values.tolist()).T
n.columns=m.index
n=n.rename_axis(None,axis=1)
n=n.reindex(df.CATEGORY.unique(),axis=1)

        Food Animal Country
0  Chocolate    Cat     USA
1      Bread    Dog   Japan
2      Apple   None  France
3   Sandwich   None    None
4       Cake   None    None