gpt4 book ai didi

python - 如何获取pandas多级索引条目的内容?

转载 作者:行者123 更新时间:2023-12-01 01:05:42 24 4
gpt4 key购买 nike

我设置了一个 pandas 数据框,除了我的数据之外,它还使用 MultiIndex 存储相应的单位,如下所示:

Name    Relative_Pressure         Volume_STP
Unit - ccm/g
Description p/p0
0 0.042691 29.3601
1 0.078319 30.3071
2 0.129529 31.1643
3 0.183355 31.8513
4 0.233435 32.3972
5 0.280847 32.8724

现在我可以通过以下方式仅提取 Volume_STP 数据

Unit            ccm/g
Description
0 29.3601
1 30.3071
2 31.1643
3 31.8513
4 32.3972
5 32.8724

使用.values我可以获得数据的numpy数组。但是我怎样才能获得存储的单位呢?我不知道需要做什么才能接收存储的 ccm/g 字符串。

编辑:添加了如何生成数据帧的示例

假设我有一个如下所示的字符串:

                      Relative                                                  Volume @ STP
Pressure
cc/g

4.26910e-02 29.3601
7.83190e-02 30.3071
1.29529e-01 31.1643
1.83355e-01 31.8513
2.33435e-01 32.3972
2.80847e-01 32.8724
3.34769e-01 33.4049
3.79123e-01 33.8401

然后我使用这个函数:

def read_result(contents, columns, units, descr):
df = pd.read_csv(StringIO(contents), skiprows=4, delim_whitespace=True,index_col=False,header=None)
df.drop(df.index[-1], inplace=True)
index = pd.MultiIndex.from_arrays((columns, units, descr))
df.columns = index
df.columns.names = ['Name','Unit','Description']
df = df.apply(pd.to_numeric)
return df

像这样

def isotherm(contents):
columns = ['Relative_Pressure','Volume_STP']
units = ['-','ccm/g']
descr = ['p/p0','']
df = read_result(contents, columns, units, descr)
return df

在我的问题开始时生成数据帧。

最佳答案

df有一个 MultiIndex 作为列,df.Volume_STP仍然是一个 pandas DataFrame。所以你仍然可以访问它的 columns属性,并且相关项目将位于索引 0 处,因为数据帧仅包含 1 个系列。

因此,您可以这样提取名称:

print(df.Volume_STP.columns[0])

应该给出:('ccm/g', '')

最后,您可以使用 .colums[0][0] 提取该单位。以及描述 .columns[0][1]

关于python - 如何获取pandas多级索引条目的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55381536/

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