我没有数据框架的经验,我陷入了以下问题:
有一个表是这样的:
输入图片描述
parent account account number account name code
0 parent 1 123122 account1 1
1 parent 1 456222 account2 1
2 parent 1 456334 account3 1
3 parent 2 456446 account4 1
4 parent 2 456558 account5 2
5 parent 2 456670 account6 3
6 parent 2 456782 account7 1
7 parent 2 456894 account8 1
8 parent 2 457006 account9 1
9 parent 2 457118 account10 1
10 parent 2 457230 account11 1
11 parent 2 457342 account12 1
12 parent 2 457454 account13 1
13 parent 2 457566 account14 1
14 parent 3 457678 account15 1
15 parent 3 457790 account16 1
16 parent 4 457902 account17 5
17 parent 4 458014 account18 5
18 parent 4 458126 account19 5
19 parent 4 458238 account20 5
20 parent 4 458350 account21 1
我需要检查哪些父母只有一个版本的代码(上一列),哪些有更多的
所需的输出是类似示例的表,但不包括只有一个版本代码的每个父级
> import pandas as pd
>
> read by default 1st sheet of an excel file
> dataframe1 = pd.read_excel("./input/dane.xlsx")
> parents = dataframe1.groupby(["parent account", "code"])
这是我在那一刻得到的唯一输出,但这不是我需要的结果
> for i in parents["parent account"]:
> print(list(i)[0])
> ```
> ('parent 1', 1)
> ('parent 2', 1)
> ('parent 2', 2)
> ('parent 2', 3)
> ('parent 3', 1)
> ('parent 4', 1)
> ('parent 4', 5)
Could you please help me with that?
首先获取父帐户列表,使它们具有多于1个不同的代码
condition = df.groupby('parent account').code.nunique() > 1
parent_list = list( condition.index[condition.values] )
然后对数据应用过滤器
df[ df['parent acount'].isin(parent_list) ]