下面是我的数据的最小示例:
Id name class_cd class_name
0 1 A abc1 dog
1 1 A def2 canine
2 1 A ghi1 safe
3 2 B abc1 cat
4 2 B def2 tabby
可复制:
df = pd.DataFrame({
'Id': [1, 1, 1, 2, 2],
'name':['A', 'A', 'A', 'B', 'B'],
'class_cd': ['abc1', 'def2', 'ghi1', 'abc1', 'def2'],
'class_name': ['dog', 'canine', 'safe', 'cat', 'tabby']
})
我希望class_cd
非重复值成为新的列,其中值是关联的class_name
,这样结果中每个id
对应一行。
预期成果:
Id name abc1 def2 ghi1
0 1 A dog canine safe
1 2 B cat tabby
Pandas怎么能做到这一点呢?
4条答案
按热度按时间agxfikkp1#
这是
pivot
的工作。您告诉它要展开哪些列,以及要在这些新列中放入哪些值。它将使用指定索引中的唯一值在结果中创建行。
然后,可以调用
reset_index()
将多索引扁平化为列。eit6fx6z2#
您可以尝试:
ndh0cuux3#
使用**
crosstab
:**作为替代输出:
7z5jn7bk4#
我想通过Pandas和sql 1.import sql来做
从class_cd中取出 Dataframe
1.使用sql连接三个表
4.outcome