Python Pandas 使用 dataframe.stack().value_counts() - 如何获取计数对象的值?

Posted

技术标签:

【中文标题】Python Pandas 使用 dataframe.stack().value_counts() - 如何获取计数对象的值?【英文标题】:Python Pandas Using dataframe.stack().value_counts() -- How to get values of counted objects? 【发布时间】:2017-03-09 00:22:02 【问题描述】:

我有一个数据框,其中每一行代表一周中的某一天,每一列代表当天与服务器通信失败的联网设备的序列号。

我正在尝试获取一整周未能通信的一系列序列号。

代码块:

counts = df.stack().value_counts()
seven_day = counts[counts == 7]
for a in seven_day:
    print(a)

问题是没有打印任何内容。我想要的是序列号列表,而不是计数本身。

这个问题是来自: Python Pandas -- Determine if Values in Column 0 Are Repeated in Each Subsequent Column

【问题讨论】:

你想遍历索引seven_day = counts[counts == 7] for a in seven_day.index: print(a) 【参考方案1】:

value_counts 返回一个 Series,其中值作为索引,计数作为值,所以你想遍历索引:

counts = df.stack().value_counts()
seven_day = counts[counts == 7]
for a in seven_day.index:
    print(a)

应该工作

【讨论】:

就是这样。感谢@EdChum 在这两个问题上帮助我。【参考方案2】:

另一种解决方案是使用Series.iteritems:

counts = df.stack().value_counts()
seven_day = counts[counts == 7]

for index, val in seven_day.iteritems():
    print(index)

【讨论】:

以上是关于Python Pandas 使用 dataframe.stack().value_counts() - 如何获取计数对象的值?的主要内容,如果未能解决你的问题,请参考以下文章

Python中DataFrames的DataFrame(Pandas)

Python pandas.DataFrame.applymap函数方法的使用

Python pandas.DataFrame.cumprod函数方法的使用

Python pandas.DataFrame.loc函数方法的使用

Python pandas.DataFrame.add函数方法的使用

Python pandas.DataFrame.abs函数方法的使用