是否有一种简单的方法来改变熊猫str
和html
表示,以显示标题下方列的dtypes
(如R的tibble
或Julia的DataFrame
)?
我看了pd.set_options()
的文档,我没有找到这样的选项。我发现的唯一方法是通过修改DataFrame
类的__repr__
和_repr_html_
,可能是通过子类。
一个快速的解决方案是为这些列设置MultiIndex:
import pandas as pd
A = ["16-01-21 0:00",
"16-01-21 0:05",
"16-01-21 0:10",
"16-01-21 0:15",
"16-01-21 0:20",
"16-01-21 1:20",
"16-01-21 1:40",
]
B = [95.75, 90.10, 86.26, 92.72, 81.54, 4, 8]
C = [0.0, 0.0, 0.0, 0.0, 0.0, 0, 0]
df = pd.DataFrame({"A": A, "B": B, "C": C})
df.A = pd.to_datetime(df.A)
cols = [(c, getattr(df, c).dtype) for c in df.columns]
df.columns = pd.MultiIndex.from_tuples(cols, names=["name", "type"])
的结果是:
name A B C
type datetime64[ns] float64 float64
0 2021-01-16 00:00:00 95.75 0.0
1 2021-01-16 00:05:00 90.10 0.0
2 2021-01-16 00:10:00 86.26 0.0
3 2021-01-16 00:15:00 92.72 0.0
4 2021-01-16 00:20:00 81.54 0.0
5 2021-01-16 01:20:00 4.00 0.0
6 2021-01-16 01:40:00 8.00 0.0