python或者SQL如何将表格合并转置

NameKeyValue
Jacksexmale
JackcountryUSA
Jackhobbysing
Jackage19
BobcountryUK
Bobage20
Bobweight70
Mariasexfemale
Mariaweight50

转换成

Namesexcotrunyagehobbyweight
JackmaleUSA19singNan
BobNanUK20Nan70
MariafemaleNanNanNan50

列名我都已经写好了,但是不想跑循环往里塞数据,有什么好办法么?

在python中使用pandas的pivot_table函数来解决,代码如下:

import pandas as pd

df=pd.read_csv('t0308.csv')
df=df.astype(str)
res=pd.pivot_table(values=['Value'],index=['Name'],columns=['Key'],data=df,aggfunc=sum)
res.columns=res.columns.droplevel(0)
res=res.rename_axis([None], axis=1) 
res=res.reset_index()
print(res)

运行结果:

F:\2022\pythontest>t5
    Name  age country hobby     sex weight
0    Bob   20      UK   NaN     NaN     70
1   Jack   19     USA  sing    male    NaN
2  Maria  NaN     NaN   NaN  female     50

如对你有帮助,请点击采纳按钮~~

貌似oracle 12以后有分组转置 , 其他的数据库不清楚。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632

ORACLE和sqlserver都支持pivot来进行行列转换,而且超简单,
以下是oracle的写法

select *
  from a
pivot(max(value)
   for key in('sex' sex,
              'country' country,
              'hobby' hobby,
              'age' age,
              'weight' weight))

img