如何找到分组数据的重要性
How to find significancy of grouped Data
我有这样的分组列预分组结果
Letters
Numbers
A
1
A
2
A
3
B
1
B
2
B
3
C
1
C
1
C
1
现在我想做的是,定义 C 是 1s 的重要因素,因为它在那里是 100%,但对于 A 或 B,它只有 33%。我想证明 C 与 A 和 B 有很大不同。
我认为应该有 pandas 和数据框的解决方案,但我不太确定如何找到该值。我可以使用哪种 pandas 方法来找到该值?
预期输出:
C 的结果谱明显不同于 A 和 B。这个显着性因素证明了这一点(这个因素是我搜索的)
提前感谢您的帮助:)。
您可以通过检查.eq(1)
and then group by Letters
and use .GroupBy.sum()
to get the count of 1's. Then, divide by the group size by using .GroupBy.size()
来尝试检查组中1的个数,如下:
df['Numbers'].eq(1).groupby(df['Letters']).sum() / df.groupby(df['Letters']).size()
结果:
Letters
A 0.333333
B 0.333333
C 1.000000
dtype: float64
这是另一种方式:
number = 1
df.groupby('Letters')['Numbers'].value_counts(normalize=True).loc[(slice(None),number)]
我通过更多地使用我的数据找到了答案。
答案是构建一个包含 6 列的新数据框
A
B
C
1
2
3
1
-
-
1
-
-
1
-
-
-
1
-
1
-
-
-
-
1
-
1
-
1
-
-
-
1
-
-
1
-
-
1
-
-
-
1
-
-
1
1
-
-
-
-
1
1
-
-
-
-
1
1
-
-
这样我就可以使用 pandas 的 corr 函数,看看我的“C”到底有多重要。
我有这样的分组列预分组结果
Letters | Numbers |
---|---|
A | 1 |
A | 2 |
A | 3 |
B | 1 |
B | 2 |
B | 3 |
C | 1 |
C | 1 |
C | 1 |
现在我想做的是,定义 C 是 1s 的重要因素,因为它在那里是 100%,但对于 A 或 B,它只有 33%。我想证明 C 与 A 和 B 有很大不同。
我认为应该有 pandas 和数据框的解决方案,但我不太确定如何找到该值。我可以使用哪种 pandas 方法来找到该值?
预期输出: C 的结果谱明显不同于 A 和 B。这个显着性因素证明了这一点(这个因素是我搜索的)
提前感谢您的帮助:)。
您可以通过检查.eq(1)
and then group by Letters
and use .GroupBy.sum()
to get the count of 1's. Then, divide by the group size by using .GroupBy.size()
来尝试检查组中1的个数,如下:
df['Numbers'].eq(1).groupby(df['Letters']).sum() / df.groupby(df['Letters']).size()
结果:
Letters
A 0.333333
B 0.333333
C 1.000000
dtype: float64
这是另一种方式:
number = 1
df.groupby('Letters')['Numbers'].value_counts(normalize=True).loc[(slice(None),number)]
我通过更多地使用我的数据找到了答案。 答案是构建一个包含 6 列的新数据框
A | B | C | 1 | 2 | 3 |
---|---|---|---|---|---|
1 | - | - | 1 | - | - |
1 | - | - | - | 1 | - |
1 | - | - | - | - | 1 |
- | 1 | - | 1 | - | - |
- | 1 | - | - | 1 | - |
- | 1 | - | - | - | 1 |
- | - | 1 | 1 | - | - |
- | - | 1 | 1 | - | - |
- | - | 1 | 1 | - | - |
这样我就可以使用 pandas 的 corr 函数,看看我的“C”到底有多重要。