将类别转换为dataframe python中的列

我有一个包含两列的数据框.一列包含不同的类别,另一列包含值.

import pandas as pd

data={"category":["Topic1","Topic2","Topic3","Topic2","Topic1","Topic3"], "value":["hello","hey","hi","name","valuess","python"]}

df=pd.DataFrame(data=data)

我希望将不同的类别放入列中,如下所示.

期望的输出:

Topic1  Topic2 Topic3
hello    hey    hi
valuess name    python

我尝试使用转置数据帧但没有得到预期的结果.

最佳答案 您可以沿轴= 1使用
pandas.concat.这也适用于不匹配的长度.

grouper = df.groupby('category')
df = pd.concat([pd.Series(v['value'].tolist(), name=k) for k, v in grouper], axis=1)

print(df)

    Topic1 Topic2  Topic3
0    hello    hey      hi
1  valuess   name  python
点赞