gpt4 book ai didi

pandas - 在 Pandas 中显示与字典键名不同的列名?

转载 作者:行者123 更新时间:2023-12-05 09:17:22 26 4
gpt4 key购买 nike

我是 Pandas 的新手,发现有很多方法可以更改列标题。例如,set_axis 命令的工作方式如下:

>>> import pandas as pd
>>> import numpy as np
>>> df = pd.DataFrame(np.arange(3),columns=['a'])
>>> df
a
0 0
1 1
2 2
>>> df["a"][0]
0
>>> df.set_axis(['A'],axis=1,inplace=True)
>>> df
A
0 0
1 1
2 2
>>> df["A"][0]
0

编辑:或者,可以使用

df.columns = ['A']

更改列名。

但现在,如果我只想更改列标题以用于显示目的(因为标题标签不方便用作字典键),我必须创建一个全新的数据框:

>>> df_pretty = df.set_axis(['Long label (%)'],axis=1,inplace=False)
df_pretty
Long label (%)
0 0
1 1
2 2

这样对吗?或者我错过了什么?仅仅为了打印而不得不重新创建一个新的数据框似乎是一种内存浪费。我原以为 Pandas 会有一种方法来存储内部“键”和单独的列标签,仅用于显示目的。

最佳答案

@JohnE 发布的解决方案看起来是最好的方法。

我也想使用格式字符串,所以在这里添加更多细节:

import pandas
df = pandas.DataFrame({'a' : [1,2,3],'b' : [4,5,6]})
di = {'a' : 'A (J/K*kg)', 'b' : 'B (N/m^2)'}
fstr = {di["a"] : '{:6.2f}', di["b"]:'{:5.2e}'}
df.rename(columns=di).style.format(fstr)

这在 Juptyer 笔记本中呈现,看起来很完美,并且完全符合我的要求。

enter image description here

但是,当我在 Python 提示符下尝试相同的代码时,样式器没有呈现。

>>> import pandas
>>> df = pandas.DataFrame({'a' : [1,2,3],'b' : [4,5,6]})
>>> di = {'a' : 'A (J/K*kg)', 'b' : 'B (N/m^2)'}
>>> fstr = {di["a"] : '{:6.2f}', di["b"]:'{:5.2e}'}
>>> df.rename(columns=di).style.format(fstr)
<pandas.io.formats.style.Styler object at 0x105812eb8>

编辑:在交互模式下(不是在 Jupyter notebook 中),不显示 HTML 格式,而且 Pandas 似乎没有表格的基本 ascii 输出样式。

关于pandas - 在 Pandas 中显示与字典键名不同的列名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48243818/

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