在dataframepython中将类别转换为列

2024-04-23 14:54:46 发布

您现在位置: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)

我想把不同的类别列成下面给出的列。在

期望输出:

^{pr2}$

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


Tags: 数据importhellopandasdatavalueashi
3条回答

您可以沿着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

使用pivotcumcount(用于创建帮助密钥)

df.assign(key=df.groupby('category').cumcount()).pivot('key','category','value')
Out[381]: 
category   Topic1 Topic2  Topic3
key                             
0           hello    hey      hi
1         valuess   name  python
s = df.groupby('category')['value'].apply(list)
s.apply(pd.Series).T

category   Topic1 Topic2  Topic3
0           hello    hey      hi
1         valuess   name  python

相关问题 更多 >