【发布时间】:2021-05-22 08:05:12
【问题描述】:
我是熊猫新手,请多多包涵。我想在数据帧上应用模式,但需要进行一些调整。列 Item_1、Item_2 和 Item_3 可以有四个值 [High,Medium,Low,NA]。高优先级最高,低优先级最低。 NA 应该被忽略。
数据如下图。
date Type Item_1 Item_2 Item_3 Price
0 2021-01-01 A High Low Low 20
1 2021-01-01 A High Low Low 20
2 2021-01-01 A Low High Low 20
3 2021-01-01 A Medium High High 20
4 2021-01-01 B Low High Low 15
5 2021-01-01 B Medium High High 15
6 2021-01-01 B Low Low Medium 15
6 2021-01-02 A NA High NA 30
7 2021-01-02 A NA High NA 30
8 2021-01-02 A NA NA NA 30
9 2021-01-02 A NA NA Low 30
10 2021-01-02 A NA NA Low 30
11 2021-01-02 A NA Low High 30
预期输出:
date Type Item_1 Item_2 Item_3 Price
0 2021-01-01 A High High Low 20
1 2021-01-01 B Low High High 15
2 2021-01-02 A NA High Low 30
我的用例是,如您所见,Item_1 中的第一行现在将值 High 作为其最常见的值。
但是在Item_2中,Low和High都有相同的频率 strong> 但高优先级更高,因此输出值高。
在 Item_3 中,Low 是最常见的,因此值为 Low。
编辑:
NA 应该被忽略。并且第二个最可用的值应该与日期 2021-01-02 NA 的输出一样,但第二个最频繁的值是 High。
值 NA 不对应于 NaN 而是一个字符串对象。类似于其他分类值。只是每当一个日期甚至有单个 High/Low/Medium 时,无论 NA 的频率如何,我都想选择出现次数/频率第二高的分类值
【问题讨论】:
-
DataFrame 中是否有不同日期时间的多行?如果是,您可以在有问题的 DataFrame 中添加几行,以便更好地了解需要什么?
-
@jezrael 抱歉给您带来不便,我已按照您的要求更新了数据。
-
没问题,答案已编辑。
标签: python python-3.x pandas dataframe