将类别转换为数据框python中的列

use*_*990 3 python transpose dataframe pandas

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

import pandas as pd

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

df=pd.DataFrame(data=data)
Run Code Online (Sandbox Code Playgroud)

我想要不同的类别到列中,如下所示。

电流输入:

category    value
  Topic1    hello
  Topic2      hey
  Topic3       hi
  Topic2     name
  Topic1  valuess
  Topic3   python
Run Code Online (Sandbox Code Playgroud)

期望输出:

Topic1  Topic2 Topic3
hello    hey    hi
valuess name    python
Run Code Online (Sandbox Code Playgroud)

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

jpp*_*jpp 5

您可以使用pandas.concat一起axis=1。这也适用于不匹配的长度。

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
Run Code Online (Sandbox Code Playgroud)