获取和分析datafram的索引列

2024-06-23 03:24:10 发布

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

我有一个很大的数据帧,在这个数据帧中,我将各种元数据存储在一个多索引中(另请参见here)。你知道吗

基本上,我的数据帧如下所示:

location    zero    A         B         C  and so on
type        zero  MUR  RHE  DUJ  RHE  RHE
name        zero  foo  bar  baz  boo  far
1930-03-01     0  2.1  3.4  9.4  5.4  5.5
1930-04-01     0  3.1  3.6  7.3  6.7  9.5
1930-05-01     0  2.5  9.1  8.0  1.1  8.1
and so on

因此,我可以很容易地选择例如所有DUJ数据类型和mydf.xs('DUJ', level = 'type', axis = 1)。你知道吗

但是如何访问type索引中的字符串,消除双精度,或者得到一些静态信息呢?

我正在寻找一个像这样的输出

types('MUR', 'RHE', 'DUJ')

和/或

types:
DUJ 1
MUR 1
RHE 3

给我一个数据类型列表以及它们出现的频率。你知道吗

我可以用

[In]mytypes = mydf.columns.get_level_values(1)

[In]mytypes
[Out]Index([u'zero', u'MUR', u'RHE', u'DUJ', u'RHE', u'RHE'], dtype='object')

但是我想不出任何简单的方法来处理这些信息,特别是考虑到我的真实数据集将返回1500个条目。我的第一个想法是一个简单的mytypes.sort(),但显然我Cannot sort an 'Index' object。你知道吗

能够描述你的数据集对我来说似乎是一件相当重要的事情,所以我希望熊猫有内在的东西,但我似乎找不到它。而MultiIndex documentation似乎只关心构造和设置索引,而不是分析它们。你知道吗


Tags: and数据信息soontypeleveltypes
1条回答
网友
1楼 · 发布于 2024-06-23 03:24:10

Index对象具有此^{}的方法,因此您可以调用:

mytypes.value_counts()

这将返回索引中的索引值和作为值的计数。你知道吗

链接问题示例:

In [3]:
header = [np.array(['location','location','location','location2','location2','location2']), 
np.array(['S1','S2','S3','S1','S2','S3'])] 
df = pd.DataFrame(np.random.randn(5, 6), index=['a','b','c','d','e'], columns = header )
df.columns

Out[3]:
MultiIndex(levels=[['location', 'location2'], ['S1', 'S2', 'S3']],
           labels=[[0, 0, 0, 1, 1, 1], [0, 1, 2, 0, 1, 2]])

In [4]:    
df.columns.get_level_values(1).value_counts()

Out[4]:
S1    2
S2    2
S3    2
dtype: int64

相关问题 更多 >

    热门问题