对多名称列使用Pandas DataFrame

2024-03-29 14:11:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Pandas存储一个大的数据集,它系统地生成了列名。像这样:

import numpy as np
import pandas as pd
df = pd.DataFrame([[0,1,2],[10,11,12],[20,21,22]],columns=["r0","r1","r2"])

这些系统名称也有更多有意义的名称,用户可以真正理解。到目前为止,我一直在用这样的字典来绘制它们:

^{pr2}$

这样就可以像这样访问它们:

print(df[altName["Objective 1"]])

这是可行的,但是它会导致代码很难读取(比如一个带有多个变量的plot命令,等等)。我不能简单地将列重命名为友好名称,因为有时我需要同时访问这两个列,但我不确定如何在没有字典的情况下同时支持这两个列。在

是否可以为一个列分配多个名称,或者进行某种隐式映射,以便我同时使用以下两种访问方法:

print(df["r0"])
print(df["Objective 1])

我曾想过创建自己的子类来检测一个keyerror,然后在备用名称的二级字典中失败,然后尝试这个方法,但是我不确定我是否能够在保留所有其他数据帧功能的同时做到这一点(我会自我评估我的Python初学者接近中间值)。在

非常感谢你的建议。在


Tags: 数据方法importnumpy名称pandasdf字典
1条回答
网友
1楼 · 发布于 2024-03-29 14:11:14

是的,你可以。数据帧只是numpy数组上的包装器,因此可以将包装器相乘:

例如:

df=pd.DataFrame([ [0,1], [2,3] ],list('AB'), columns=list('CD'))
df2=pd.DataFrame(df.values,df.index, columns=list('EF'))
df.loc['A','C']=999

然后df2也会受到影响:

^{pr2}$

相关问题 更多 >