Pandas:如何使用一个变量的值,同时制作一个新的数据帧使用。

2024-09-30 05:25:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧,只有公司名称“CC”,我想获取它所属组名的所有公司名称,即(AA、BB、CC、DD和EE数据帧) 条件:只有公司名称是已知的,其余列的数据每周都会更改。在

| S.no|Company| City         | Vendor | Group Number | Category  
| 1   |  AA   | Delhi        | Micro  | 9188-SC      | BBRNC011TR
| 2   |  BB   | Delhi        | Micro  | 9188-SC      | BBRNC011TR
| 3   |  CC   | Banglore     | Micro  | 9188-SC      | BBRNC011TR
| 4   |  DD   | Banglore     | Micro  | 9188-SC      | BBRNC011TR
| 5   |  EE   | Mumbai       | Micro  | 9188-SC      | BBRNC011TR
| 6   |  FF   | Colcutta     | Micro  | 8876-SC      | NCRNC011TR
| 7   |  GG   | Colcutta     | Micro  | 8876-SC      | NCRNC011TR
| 8   |  HH   | Noida        | Micro  | 8876-SC      | NCRNC011TR
| 9   |  II   | Noida        | Micro  | 8876-SC      | NCRNC011TR

我试过了

^{pr2}$

它给了我组号,我可以通过这个组号找到下一个数据帧,但挑战是它每天都在变化,所以如何解决这个问题?在


Tags: 数据名称公司microddeeaacc
2条回答

在我看来,创建从公司到集团以及从集团到公司的映射的一次性成本是值得的。为此,可以创建两个系列。在

首先将给定的公司映射到GroupNumber。然后将GroupNumber映射到一个公司列表。下面是一个演示:

co_grp = df.drop_duplicates('Company').set_index('Company')['GroupNumber']
grp_cos = df.groupby('GroupNumber')['Company'].apply(list)

res = df[df['Company'].isin(grp_cos[co_grp['CC']])]

print(res)

   S.no Company      City Vendor GroupNumber    Category
0     1      AA     Delhi  Micro     9188-SC  BBRNC011TR
1     2      BB     Delhi  Micro     9188-SC  BBRNC011TR
2     3      CC  Banglore  Micro     9188-SC  BBRNC011TR
3     4      DD  Banglore  Micro     9188-SC  BBRNC011TR
4     5      EE    Mumbai  Micro     9188-SC  BBRNC011TR

对于您的数据,请尝试以下操作:

d.loc[d[" Vendor_Group_Number"].isin(d.loc[d['S.no']=="AA"][" Vendor_Group_Number"].tolist())]

相关问题 更多 >

    热门问题