gpt4 book ai didi

python - 如何将列表中的前三个元素设为列,其余元素设为行 - Python

转载 作者:太空宇宙 更新时间:2023-11-04 01:55:17 24 4
gpt4 key购买 nike

df = pd.DataFrame({'Categotry':['Food','Animal'],
'Detail':[['Name','Color','Sweet?','Bread','Brown','No','Rice','White','No','Sushi','N/A','No'],
['Name','Predator?','Habitat','Tigers','Yes','Forests','Lions','Yes','Savanna','Deers','No','Hardwoods']]})

我有上面的数据框,我想按如下方式拆分详细信息列: enter image description here

我如何在 Python 中做到这一点?

感谢您的帮助。

最佳答案

自定义函数

def process_details(details):
cols, *data = np.reshape(details, (-1, 3))
return pd.DataFrame(data, columns=cols)

我使用 np.reshape 因为我已经习惯了。然而,这可以完成同样的事情。

def process_details(details):
cols, *data = zip(*[iter(details)] * 3)
return pd.DataFrame(data, columns=cols)

并排

因为列名不匹配

pd.concat({
cat: process_details(details)
for cat, details in zip(*map(df.get, df))
}, sort=False, axis=1)

Animal Food
Name Predator? Habitat Name Color Sweet?
0 Tigers Yes Forests Bread Brown No
1 Lions Yes Savanna Rice White No
2 Deers No Hardwoods Sushi N/A No

但如果你坚持要堆叠它们

pd.concat({
cat: process_details(details)
for cat, details in zip(*map(df.get, df))
}, sort=False)

Name Predator? Habitat Color Sweet?
Animal 0 Tigers Yes Forests NaN NaN
1 Lions Yes Savanna NaN NaN
2 Deers No Hardwoods NaN NaN
Food 0 Bread NaN NaN Brown No
1 Rice NaN NaN White No
2 Sushi NaN NaN N/A No

关于python - 如何将列表中的前三个元素设为列,其余元素设为行 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56956940/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com