如何查找数值属于哪一行哪一列?

假设我创建了下面的数据框架

data = {'Height_1': [4.3,6.7,5.4,6.2], 
        'Height_2': [5.1, 6.9, 5.1, 5.2], 
        'Height_3': [4.9,6.2,6.5,6.4]}

df = pd.DataFrame(data) 

假设有人来问我

  1. 找出高度6.9的行和列 ?
  2. 找出高度为6.2的行和列有多少行和列?

请帮助我将是什么代码?

解决方案:

使用布林索引,我们可以尝试像这样的方法。

>>> df[df == 6.9]

Height_1  Height_2  Height_3
0       NaN       NaN       NaN
1       NaN       6.9       NaN
2       NaN       NaN       NaN
3       NaN       NaN       NaN

然而,这不一定会给你准确的行和列索引的数据,你正在寻找。如果你想明确地得到行和列,我们需要做一些更多的工作。

>>> bool_df = df[df == 6.9]
>>> list(bool_df.stack().index)

[(1, 'Height_2')]

至于第二个问题,我们可以使用 count 函数,结合我们之前使用的布尔方法。

>>> df[df == 6.2].count()

Height_1    1
Height_2    0
Height_3    1
dtype: int64

为了计算行数,我们可以使用 axis 参数。

>>> df[df == 6.2].count(axis=1)

0    0
1    1
2    0
3    1
dtype: int64

要获得某个值的简单总出现次数,我们可以使用NumPy的 sum 职能。

>>> np.sum(df[df == 6.2].count())

2

给TA打赏
共{{data.count}}人
人已打赏
解决方案

带有一个彩色框的Gnuplot多图集

2022-5-13 9:00:22

解决方案

返回值的类型断言与函数返回类型的类型化比较

2022-5-13 9:00:24

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索