gpt4 book ai didi

python - Pandas:如何将多个数据框引用和打印为 HTML 表格

转载 作者:太空狗 更新时间:2023-10-29 17:46:30 25 4
gpt4 key购买 nike

我正在尝试从 groupby 中拆分出单个数据帧,以将它们打印为 pandas HTML 表。我需要引用它们并将它们单独呈现为表格,以便我可以将它们截屏以进行演示。

这是我当前的代码:

import pandas as pd

df = pd.DataFrame(
{'area': [5, 42, 20, 20, 43, 78, 89, 30, 46, 78],
'cost': [52300, 52000, 25000, 61600, 43000, 23400, 52300, 62000, 62000, 73000],
'grade': [1, 3, 2, 1, 2, 2, 2, 4, 1, 2], 'size': [1045, 957, 1099, 1400, 1592, 1006, 987, 849, 973, 1005],
'team': ['man utd', 'chelsea', 'arsenal', 'man utd', 'man utd', 'arsenal', 'man utd', 'chelsea', 'arsenal', 'arsenal']})

result = df.groupby(['team', 'grade']).agg({'cost':'mean', 'area':'mean', 'size':'sum'}).rename(columns={'cost':'mean_cost', 'area':'mean_area'})

dfs = {team:grp.drop('team', axis=1)
for team, grp in result.reset_index().groupby('team')}

for team, grp in dfs.items():
print('{}:\n{}\n'.format(team, gap))

打印(作为非 HTML 表格):

chelsea:
grade mean_cost mean_area size
2 3 52000 42 957
3 4 62000 30 849

arsenal:
grade mean_cost mean_area size
0 1 62000.000000 46.000000 973
1 2 40466.666667 58.666667 3110

man utd:
grade mean_cost mean_area size
4 1 56950 12.5 2445
5 2 47650 66.0 2579

是否可以将这些数据框作为 HTML 表格一一获取?为避免疑义,我不需要一种迭代方法来一次性将它们全部作为 HTML 表格返回——我很乐意单独引用每个表格。

最佳答案

作为Thomas K points out ,您可以使用 IPython.core.display.display 将 DataFrames 的显示与 IPython notebook 中的打印语句结合起来:

import pandas as pd
from IPython.core import display as ICD


df = pd.DataFrame(
{'area': [5, 42, 20, 20, 43, 78, 89, 30, 46, 78],
'cost': [52300, 52000, 25000, 61600, 43000, 23400, 52300, 62000, 62000, 73000],
'grade': [1, 3, 2, 1, 2, 2, 2, 4, 1, 2], 'size': [1045, 957, 1099, 1400, 1592, 1006, 987, 849, 973, 1005],
'team': ['man utd', 'chelsea', 'arsenal', 'man utd', 'man utd', 'arsenal', 'man utd', 'chelsea', 'arsenal', 'arsenal']})

result = df.groupby(['team', 'grade']).agg({'cost':'mean', 'area':'mean', 'size':'sum'}).rename(columns={'cost':'mean_cost', 'area':'mean_area'})

dfs = {team:grp.drop('team', axis=1)
for team, grp in result.reset_index().groupby('team')}

for team, grp in dfs.items():
print(team)
ICD.display(grp)

生成
enter image description here

关于python - Pandas:如何将多个数据框引用和打印为 HTML 表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36719812/

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