Comcast Telecom Consumer Complaints
Comcast Telecom Consumer Complaints
DESCRIPTION
Comcast is an American global telecommunication company. The firm has been providing terrible
customer service. They continue to fall short despite repeated promises to improve. Only last
month (October 2016) the authority fined them a $2.3 million, after receiving over 1000
consumer complaints.The existing database will serve as a repository of public customer
complaints filed against Comcast.It will help to pin down what is wrong with Comcast's
customer service.
Data Dictionary
- Ticket #: Ticket number assigned to each complaint
- Customer Complaint: Description of complaint
- Date: Date of complaint
- Time: Time of complaint
- Received Via: Mode of communication of the complaint
- City: Customer city
- State: Customer state
- Zipcode: Customer zip
- Status: Status of complaint
- Filing on behalf of someone
Analysis Task
To perform these tasks, you can use any of the different Python libraries such as NumPy,
SciPy, Pandas, scikit-learn, matplotlib, and BeautifulSoup.
Analysis Task 1
- Import data into python environment
Out[3]:
Filing on
Ticket Received Zip
Customer Complaint Date Date_month_year Time City State Status Behalf of
# Via code
Someone
22-
Comcast Cable Internet 3:53:50 Customer
0 250635 04- 22-Apr-15 Abingdon Maryland 21009 Closed No
Speeds PM Care Call
15
04-
Payment disappear - service 10:22:56
1 223441 08- 04-Aug-15 Internet Acworth Georgia 30102 Closed No
got disconnected AM
15
18-
9:55:47
2 242732 Speed and Service 04- 18-Apr-15 Internet Acworth Georgia 30101 Closed Yes
AM
15
05-
Comcast Imposed a New 11:59:35
3 277946 07- 05-Jul-15 Internet Acworth Georgia 30101 Open Yes
Usage Cap of 300GB that ... AM
15
26-
Comcast not working and no 1:25:26
4 307175 05- 26-May-15 Internet Acworth Georgia 30101 Solved No
service to boot PM
15
... ... ... ... ... ... ... ... ... ... ... ...
04-
9:13:18 Customer
2219 213550 Service Availability 02- 04-Feb-15 Youngstown Florida 32466 Closed No
AM Care Call
15
06-
Comcast Monthly Billing for 1:24:39 Customer
2220 318775 02- 06-Feb-15 Ypsilanti Michigan 48197 Solved No
Returned Modem PM Care Call
15
06-
5:28:41
2221 331188 complaint about comcast 09- 06-Sep-15 Internet Ypsilanti Michigan 48197 Solved No
PM
15
23-
Extremely unsatisfied 11:13:30 Customer
2222 360489 06- 23-Jun-15 Ypsilanti Michigan 48197 Solved No
Comcast customer PM Care Call
15
24-
Comcast, Ypsilanti MI Internet 10:28:33 Customer
2223 363614 06- 24-Jun-15 Ypsilanti Michigan 48198 Open Yes
Speed PM Care Call
15
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 2224 entries, 0 to 2223
Data columns (total 11 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Ticket # 2224 non-null object
1 Customer Complaint 2224 non-null object
2 Date 2224 non-null object
3 Date_month_year 2224 non-null object
4 Time 2224 non-null object
5 Received Via 2224 non-null object
6 City 2224 non-null object
7 State 2224 non-null object
8 Zip code 2224 non-null int64
9 Status 2224 non-null object
10 Filing on Behalf of Someone 2224 non-null object
dtypes: int64(1), object(10)
memory usage: 191.2+ KB
In [6]: # Converting column names to lowercase and removing whitespaces for easy access
comcast.columns = comcast.columns.str.lower().str.replace(" ","_")
Out[8]:
ticket_# customer_complaint date month date_month_year time received_via city state zip_code status filing
Payment disappear -
2015- 10:22:56
1 223441 service got Aug 04-Aug-15 Internet Acworth Georgia 30102 Closed
08-04 AM
disconnected
2015- 9:55:47
2 242732 Speed and Service Apr 18-Apr-15 Internet Acworth Georgia 30101 Closed
04-18 AM
Comcast Imposed a
2015- 11:59:35
3 277946 New Usage Cap of Jul 05-Jul-15 Internet Acworth Georgia 30101 Open
07-05 AM
300GB that ...
... ... ... ... ... ... ... ... ... ... ... ...
Comcast Monthly
2015- 1:24:39 Customer
2220 318775 Billing for Returned Feb 06-Feb-15 Ypsilanti Michigan 48197 Solved
02-06 PM Care Call
Modem
In [ ]:
Analysis Task 2
- trend chart for the number of complaints at monthly and daily granularity levels.
Out[9]:
customer_complaint
month_no
1 55
2 59
3 45
4 375
5 317
6 1046
7 49
8 67
9 55
10 53
11 38
12 65
Out[11]:
customer_complaint
date
2015-01-04 18
2015-01-05 12
2015-01-06 25
2015-02-04 27
2015-02-05 7
2015-02-06 25
2015-03-04 15
2015-03-05 5
2015-03-06 25
2015-04-04 12
customer_complaint 218
Name: 2015-06-24 00:00:00, dtype: int64
In [ ]:
Analysis Task 3
- Provide a table with the frequency of complaint types.
Out[16]:
count
availabilty 4
unfair pricing 4
throttling 3
monopoly 3
fraud 2
xfinity 2
cable 2
Comcast complaints are the highest complaint type registered followed by that is internet complaint.
In [ ]:
Analysis Task 4
- Create a new categorical variable with value as Open and Closed. Open & Pending is to be
categorized as Open and Closed & Solved is to be categorized as Closed.
Out[20]:
open_or_closed
Closed 1707
Open 517
Table shows that most of the complaints registered has been resolved
In [ ]:
Analysis Task 5
- Provide state wise status of complaints in a stacked bar chart. Use the categorized
variable from Q3.
In [21]: # Stacked Barchart to represent state wise complaint counts and its status
comcast.groupby(['state','open_or_closed']).size().unstack().plot.bar(figsize=(20,10),stacked=True,colo
r=['darkgreen','sandybrown'])
txt = {'weight':'bold'}
plt.title("Stacked Barplot for Different States",fontdict=txt)
plt.xlabel('State',fontdict=txt,labelpad=20)
plt.ylabel('Count',fontdict=txt,labelpad=30)
plt.show()
Stacked Barchart shows state wise complaints that has been resolved and unresolved
In [ ]:
Analysis Task 6
- Provide insights on:
* Which state has the maximum complaints
* Which state has the highest percentage of unresolved complaints
Out[22]:
state complaint_count
Washington Washington 98
Colorado Colorado 80
Maryland Maryland 78
In [24]: # Bar Plot to represent The states with its Unresolved complaint percentage
high = comcast.groupby(['state','open_or_closed']).size().unstack()
high.fillna(0,inplace=True)
high['unresolved_percent'] = (high['Open']/(high['Open']+high['Closed']))*100
high = high.sort_values('unresolved_percent',ascending=False)
plt.figure(figsize=(15,8))
high['unresolved_percent'].head(10).plot.bar(color='darkolivegreen')
txt = {'weight':'bold'}
plt.title("State and Unresolved Complaint Percentage",fontdict=txt)
plt.xlabel('State',fontdict=txt,labelpad=30)
plt.ylabel('Unresolved Complaint Percentage',fontdict=txt,labelpad=30)
plt.show()
Kansas has the highest percentage of unresolved complaints than other states
In [ ]:
Analysis Task 7
- Provide the percentage of complaints resolved till date, which were received through the
Internet and customer care calls.
Out[25]:
open_or_closed Closed Open resolved_percentage
received_via
In [ ]: