gpt4 book ai didi

python - 逐行打印 Pandas 列名和单元格值

转载 作者:行者123 更新时间:2023-12-04 08:08:08 25 4
gpt4 key购买 nike

我需要将 Pandas 数据框逐行拆分为带标题的段落。列名是标题,单元格值是段落。
示例 df(实际的 df 要长得多)

data = {'Title': ['Wormwood', 'Transmetropolitan', 'Y - The last man'],
'Author': ['Ben Templesmith', 'Warren Ellis', 'Brian K. Vaughan'],
'Abstract' :['Blah blah', 'Yadda yadda', 'Alas, poor Yorick! I knew him....']}

df = pd.DataFrame(data, columns = ['Title', 'Author', 'Abstract'])
我想要的输出是

标题:

作者:
本坦普史密斯
抽象的:
呸呸呸
标题:
跨大都会
作者:
沃伦·埃利斯
抽象的:
亚达亚达
标题:
Y-最后一个人
作者:
布赖恩·K·沃恩
抽象的:
唉,可怜的约里克!我认识他....

我试过的代码
for i,j in zip(range(len(df.columns), range(len(df)):
print(f'***{df.columns[i]}***\n {df.iloc[j][j]}')
i+=1
j+=1
这种工作,但它看起来真的很笨重,不会在更长更复杂的 df 上工作。
就上下文而言,如果有意义的话,我基本上是想把这个 df 变成一本小册子。

最佳答案

使用 DataFrame.stack 用于 reshape ,然后通过第一个 reset_index 删除索引重复值与 drop=True并设置新的列名:

df1 = df.stack().reset_index(level=0, drop=True).rename_axis('a').reset_index(name='b')
print (df1)
a b
0 Title Wormwood
1 Author Ben Templesmith
2 Abstract Blah blah
3 Title Transmetropolitan
4 Author Warren Ellis
5 Abstract Yadda yadda
6 Title Y - The last man
7 Author Brian K. Vaughan
8 Abstract Alas, poor Yorick! I knew him....
然后有必要在 f-string 中打印年代:
for a, b in df1.to_numpy():
print (f'{a}: {b}')
Title: Wormwood
Author: Ben Templesmith
Abstract: Blah blah
Title: Transmetropolitan
Author: Warren Ellis
Abstract: Yadda yadda
Title: Y - The last man
Author: Brian K. Vaughan
Abstract: Alas, poor Yorick! I knew him....

关于python - 逐行打印 Pandas 列名和单元格值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66116231/

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