多条件过滤器 python pandas
Multi condition filter python pandas
我有一个 pandas 数据框,其中包含这样的数据...
df0
Customer
Product
Price
A
x
B
y
B
y
C
x
C
y
D
x
D
y
D
y
我需要将这个数据集分成两个数据框:
客户只有一种产品的一个数据框。客户有多个这样的产品的另一个数据框...
df1
Customer
Product
Price
A
x
B
y
B
y
df2
Customer
Product
Price
C
x
C
y
D
x
D
y
D
y
然后我将对价格进行一些分析作为后续步骤。
我知道如何在一列上进行过滤,但我无法找出需要像这样使用两列的过滤器。
有人可以帮忙编写将数据分成两个数据帧的代码吗?
非常感谢
如果你使用
df0.Product.groupby(df0.Customer).transform('nunique')
将return行中客户的唯一产品数。所以
df0[df0.Product.groupby(df0.Customer).transform('nunique') > 1]
例如,将创建一个包含所有具有多个产品的数据框。
我有一个 pandas 数据框,其中包含这样的数据...
df0
Customer | Product | Price |
---|---|---|
A | x | |
B | y | |
B | y | |
C | x | |
C | y | |
D | x | |
D | y | |
D | y |
我需要将这个数据集分成两个数据框:
客户只有一种产品的一个数据框。客户有多个这样的产品的另一个数据框...
df1
Customer | Product | Price |
---|---|---|
A | x | |
B | y | |
B | y |
df2
Customer | Product | Price |
---|---|---|
C | x | |
C | y | |
D | x | |
D | y | |
D | y |
然后我将对价格进行一些分析作为后续步骤。 我知道如何在一列上进行过滤,但我无法找出需要像这样使用两列的过滤器。 有人可以帮忙编写将数据分成两个数据帧的代码吗? 非常感谢
如果你使用
df0.Product.groupby(df0.Customer).transform('nunique')
将return行中客户的唯一产品数。所以
df0[df0.Product.groupby(df0.Customer).transform('nunique') > 1]
例如,将创建一个包含所有具有多个产品的数据框。