对数据帧特征的相同观察结果显示为独立

2024-06-17 10:20:45 发布

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

我得到了以下数据:

carrier_name sol_carrier aapt 702 aapt carrier 185 afrix 72 afr-ix 4 airtel 35 airtel 2 airtel dia and broadband 32 airtel mpls standard circuits 32 amt 6 anca test 1 appt 1 at tokyo 1 at&t 5041 att 2 batelco 723 batelco 2 batelco (manual) 4 beeline 1702 beeline - 01 6 beeline - 02 6

我需要得到一个唯一的carrier_name列表,因此我做了一些基本的整理工作,因为我只想用以下代码在观察的开始或结束处保留名称,不带空格:

`carrier = pd.DataFrame(data['sol_carrier'].value_counts(dropna=False))
carrier['carrier_name'] = carrier.index
carrier['carrier_name'] = carrier['carrier_name'].str.strip()
carrier['carrier_name'] = carrier['carrier_name'].str.replace('[^a-zA-Z]', ' ')
carrier['carrier_name'] = np.where(carrier['carrier_name']==' ',np.NaN,carrier['carrier_name'])
carrier['carrier_name'] = carrier['carrier_name'].str.strip()
carrier = carrier.reset_index(drop=True)
carrier = carrier[['carrier_name','sol_carrier']]
carrier.sort_values(by='carrier_name')`

这里发生的事情是,我得到一个carrier_name列表,但仍然得到一些重复的观察结果,例如airtelbeeline。我不明白为什么会发生这种情况,因为两个观察结果都是相同的,并且在观察的开始或结束处没有更多的空白,并且,这些观察结果之后是其各自的value_counts(),因此没有理由重复它们。以下是相同的DF,但在应用上述代码后:

carrier_name sol_carrier aapt 702 aapt carrier 185 afr ix 4 afrix 72 airtel 35 airtel 2 airtel dia and broadband 32 airtel mpls standard circuits 32 amt 6 anca test 1 appt 1 at t 5041 at tokyo 1 att 2 batelco 723 batelco 2 batelco manual 4 beeline 1702 beeline 6 beeline 6


Tags: andnameatixcarrierstrdiasol
1条回答
网友
1楼 · 发布于 2024-06-17 10:20:45

这是因为您不聚合结果,而只是更改“carrier\u name”列中的值

要聚合结果,请调用

carrier.groupby('carrier_name').sol_carrier.sum()

或者修改“数据”数据帧,然后调用

data['sol_carrier'].value_counts()

相关问题 更多 >