首页 > 解决方案 > 是否有一种熊猫方式可以自动为在图例或类似图形项目中使用的列命名?

问题描述

是否有任何 Pandas 方法可以将数据框列名称与该名称的良好描述“链接”?

请参阅以下片段,其中我有一个包含两列的数据框:十人的体重(公斤)和身高(米)。

当我创建数据框时,我使用这种语法

df = pd.DataFrame({'a':[1,2,3],'b':[4,5,6]})

但我想在创建数据框 a 时“附加”,beautiful description for column name a以便$\b_0$ some latex for column name b所有自动使用该名称的图形项对用户来说都很好(图例、刻度标签、轴标签等)。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

sz = 10
bmi = np.random.normal(25,0.1,sz)
h = np.random.normal(70*2.54/100,4*2.54/100,sz)
w = bmi*h**2
df = pd.DataFrame({'height_m':h,'weight_kg':w})
ax1 = df.plot.scatter(x='height_m',y='weight_kg')
plt.savefig('raw.png')
ax2 = df.plot.scatter(x='height_m',y='weight_kg')
ax2.set_xlabel('$h_0$, Altezza/m')
ax2.set_ylabel('$p_0$, Peso/kg')
plt.savefig('publishable.png')
plt.show()

这是直接来自熊猫的原始图片:

直接来自熊猫的原始图片

这是我想要得到的图片......但没有自己修改情节添加set_xlabel等等set_ylabel......

在此处输入图像描述

标签: pythonpandas

解决方案


您可以DataFrame从一开始就正确命名并绘制数据框访问df.columns

sz = 10
bmi = np.random.normal(25,0.1,sz)
h = np.random.normal(70*2.54/100,4*2.54/100,sz)
w = bmi*h**2
df = pd.DataFrame({'$h_0$, Altezza/m':h,'$p_0$, Peso/kg':w})
df.plot.scatter(x=df.columns[0], y=df.columns[1])
plt.savefig('publishable.png')

plt.show()

阴谋

另外,如果您使用Jupyter Notebook / Jupyter Lab,它将正确转换 LaTeX: 数据框


推荐阅读