许多数据集都有代表不同实体的行,每个数据集都有代表有关实体的数据的多个列。有时,有必要识别包含每行最大值的特定列。此任务可以使用 idxmax() 函数来完成。
在给定的示例中,我们有一个包含四列的 DataFrame:“通信和搜索”、“业务”、“常规”和“生活方式”。我们想要创建一个新列“Max”,其中包含与每行最大值对应的列名。
为此,我们可以使用 idxmax(axis=1) 来查找列索引具有最大值:
df.idxmax(axis=1) # Output: 0 Communications 1 Business 2 Communications 3 Communications 4 Business dtype: object
这给了我们列标签,但我们可以将它们转换为相应的列名称:
df['Max'] = df.idxmax(axis=1)
生成的 DataFrame 将如下所示:
communications and search | business | general | lifestyle | max |
---|---|---|---|---|
0.745763 | 0.050847 | 0.118644 | 0.084746 | Communications |
0.333333 | 0.000000 | 0.583333 | 0.083333 | Business |
0.617021 | 0.042553 | 0.297872 | 0.042553 | Communications |
0.435897 | 0.000000 | 0.410256 | 0.153846 | Communications |
0.358974 | 0.076923 | 0.410256 | 0.153846 | Business |
请注意,idxmax() 也可用于查找 row 索引,其中最大值出现在每列中,使用 df.idxmax() (或 df.idxmax(axis=0))。
以上是如何查找 DataFrame 中每行的最大值的列名?的详细内容。更多信息请关注PHP中文网其他相关文章!