我正在使用包含客户信息的数据集进行实验/学习。
DataFrame结构如下(这些都是记录):
import pandas as pd
df = pd.DataFrame({'cus_id' : [111, 222, 333, 444, 555, 666, 777, 888, 999],
'cus_brand_id' : ['ABCD_111', 'ABCD_222', 'EFG_333', 'EFG_444', 'H_555', 'IJ_666', 'IJ_777', 'IJ_888', 'K_999']})
print(df)
cus_id cus_brand_id
0 111 ABCD_111
1 222 ABCD_222
2 333 EFG_333
3 444 EFG_444
4 555 H_555
5 666 IJ_666
6 777 IJ_777
7 888 IJ_888
8 999 K_999
如您所见,客户可以属于以下五个品牌之一:ABCD
,EFG
,H
,IJ
和K
。
我的目标是计算每个品牌的客户数量。也就是说,我要生成以下输出表:
| ABCD | 2 |
| EFG | 2 |
| H | 1 |
| IJ | 3 |
| K | 1 |
这是一个简单的示例,但是我正在使用的实际数据集遵循相同的结构。具体来说,每个cus_brand_id
条目都以一些大写字母开头,后跟一个下划线,再加上一些数字。
我尝试过的一件事是使用split
系列上的cus_brand_id
方法将品牌与ID隔离开来,但是我不知道如何从这里继续。
cus_brand = df['cus_brand_id'].str.split('_')
print(cus_brand)
0 [ABCD, 111]
1 [ABCD, 222]
2 [EFG, 333]
3 [EFG, 444]
4 [H, 555]
5 [IJ, 666]
6 [IJ, 777]
7 [IJ, 888]
8 [K, 999]
Name: cus_brand_id, dtype: object
答案 0 :(得分:3)
您可以先使用api.addAsyncRequestTransform(request => async () => {
await AsyncStorage.load('something')
})
提取它们:
api.addAsyncRequestTransform(request => async() => {
await msalService.loginSilent().then(login => {
api.setHeader('Token', login.rawIdToken);
});
});
因此我们可以通过以下方式获得品牌
.str[0]
并使用以下方法计算客户数量:
>>> df['cus_brand_id'].str.split('_').str[0]
0 ABCD
1 ABCD
2 EFG
3 EFG
4 H
5 IJ
6 IJ
7 IJ
8 K
Name: cus_brand_id, dtype: object
或具有以下条件的唯一客户的数量:
df['brand'] = df['cus_brand_id'].str.split('_').str[0]
答案 1 :(得分:1)
In [1]:
import pandas as pd
df = pd.DataFrame({'cus_id' : [111, 222, 333, 444, 555, 666, 777, 888, 999],
'cus_brand_id' : ['ABCD_111', 'ABCD_222', 'EFG_333', 'EFG_444', 'H_555', 'IJ_666', 'IJ_777', 'IJ_888', 'K_999']})
# new data frame with split value columns
new = df["cus_brand_id"].str.split("_", n = 1, expand = True)
df["brand"]= new[0]
df["brand_id"]= new[1]
# Dropping old cus_brand_id columns
df.drop(columns =["cus_brand_id"], inplace = True)
# df display
df.groupby(by='brand')['cus_id'].count()
Out [1]:
brand
ABCD 2
EFG 2
H 1
IJ 3
K 1
Name: cus_id, dtype: int64
您随时可以在.count()
之后添加.to_frame()
,以使用数据框布局而不是序列。或to_dict()
拥有以品牌为关键词的字典