我有一个数据框如下:
>>> df
0 1 2 3 4 5
0 1 2 3 1.0 A B
1 2 5 6 1.0 A B
2 1 7 8 NaN C A
3 2 10 11 1.0 B B
我想计算第 0 列中每个值相对于两列(4 和 5)的唯一值出现的次数。例如,在上述情况下,输出将是这样的
0 1
0 1 3
1 2 2
因为对于第 0 列中的值 1,第 4 列和第 5 列中的唯一值的数量是 A、B、C,而对于值 2 只有 A、B。
最佳答案
您可以groupby
第 0 列,展平第 4 列和第 5 列的值,然后计算唯一值的数量:
import pandas as pd
import numpy as np
df.groupby("0")[['4', '5']].apply(lambda g: len(np.unique(g.values.flatten())))
#0
#1 3
#2 2
#dtype: int64
关于python - 如何在 Pandas 中对两列进行区分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40324204/