选择一个ID并给我所有买家



我有一个carid,我想看看所有与此carid有关的买家。所以我想有所有的买家谁已经购买了carid3。我该怎么做?

import pandas as pd
d = {'Buyerid': [1,1,2,2,3,3,3,4,5,5,5],
'Carid': [1,2,3,4,4,1,2,4,1,3,5]}
df = pd.DataFrame(data=d)
print(df)
Buyerid  Carid
0         1      1
1         1      2
2         2      3
3         2      4
4         3      4
5         3      1
6         3      2
7         4      4
8         5      1
9         5      3
10        5      5
# What I want
Buyerid  Carid
2         2      3
3         2      4
8         5      1
9         5      3
10        5      5

我已经测试过这个df = df.loc[df['Carid']==3,'Buyerid'],但这只给了我CardID3的线路,但不是完整的买家。如何根据列值从DataFrame中选择行

我看了一下,但这里只有这个

Buyerid  Carid
2         2      3
9         5      3

执行以下操作:

import pandas as pd
d = {'Buyerid': [1, 1, 2, 2, 3, 3, 3, 4, 5, 5, 5],
'Carid': [1, 2, 3, 4, 4, 1, 2, 4, 1, 3, 5]}
df = pd.DataFrame(data=d)
# get all buyers
buyers = set(df.loc[df['Carid'] == 3, 'Buyerid'])
# boolean mask for filtering
mask = df['Buyerid'].isin(buyers)
print(df[mask])

输出

Buyerid  Carid
2         2      3
3         2      4
8         5      1
9         5      3
10        5      5

您可以使用df.loc:

df.loc[df['Carid']==3,'Buyerid']

最新更新