In [23]:
import statsmodels.formula.api as smf
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
cscDF = pd.read_excel('csc_data.xlsx')

In [24]:
cscDF.head()


Out[24]:
SSR_CREATED_START COM_CH COM_CH_DESC COM_REASON COM_REASON_REP ROW_ID PARTNERID MEMBERID COMREASONID COMCHANNELID ... ORIGIN_CARD CATID_PB SSR_KONTAKTGRUNDGRUPPE MODIFICATION_NUM CATID_SIEBEL SSR_POINTS X_INCIDENT_DT COMSUBREASONID X_ARCHIVE_REF POOLNAME
1 2015-01-23 10:13:03 Email NaN Karte Beratung Karte Beratung 252428800 54 25765558 81 34 ... 3083429222682457 4 Karte 5 NaN NaN 2015-01-23 NaN NaN NaN
2 2015-01-23 11:25:51 Email NaN Karte nicht erhalten Karte nicht erhalten 252429240 54 40766191 102 34 ... 3083421195565397 4 Karte 4 NaN NaN 2015-01-23 NaN NaN NaN
3 2015-01-22 17:39:43 Email NaN Karte nicht erhalten Karte nicht erhalten 252369870 1 42583922 102 34 ... 3083423615365390 4 Karte 7 NaN NaN 2015-01-22 407 NaN NaN
4 2015-01-22 17:28:58 Email NaN Karte Beratung Karte Beratung 252313272 1 6425300 81 34 ... 3083420081941159 4 Karte 7 NaN NaN 2015-01-22 399 NaN NaN
5 2015-01-23 11:54:01 Email NaN Karte verloren/gestohlen Karte verloren/gestohlen 252427553 24 13400588 117 34 ... 3083420172325734 4 Karte 1 12 NaN NaT NaN NaN NaN

5 rows × 40 columns


In [25]:
cscDF.columns


Out[25]:
Index([u'SSR_CREATED_START', u'COM_CH', u'COM_CH_DESC', u'COM_REASON', u'COM_REASON_REP', u'ROW_ID', u'PARTNERID', u'MEMBERID', u'COMREASONID', u'COMCHANNELID', u'DESCRIPTION', u'SUMMARY', u'STATUS', u'END_DT', u'SSR_ROW_ID', u'SSR_CREATED', u'USER_ID_CREATED', u'SSR_LAST_UPD', u'USER_ID_LAST_UPD', u'DWH_INSERTED', u'DWH_UPDATED', u'DWH_UPDATED_BY', u'DWH_INSERTED_BY', u'CATID', u'BRANCHID', u'VORGANGSID', u'PAR_SSR_ROW_ID', u'IDENT_MTHD', u'MOOD', u'FWD_COUNT', u'ORIGIN_CARD', u'CATID_PB', u'SSR_KONTAKTGRUNDGRUPPE', u'MODIFICATION_NUM', u'CATID_SIEBEL', u'SSR_POINTS', u'X_INCIDENT_DT', u'COMSUBREASONID', u'X_ARCHIVE_REF', u'POOLNAME'], dtype='object')

In [26]:
karte_verloren_gestohlen = cscDF[cscDF['COMREASONID']==117]
del karte_verloren_gestohlen['COM_CH']
del karte_verloren_gestohlen['COM_CH_DESC']
del karte_verloren_gestohlen['SSR_CREATED_START']
del karte_verloren_gestohlen['ROW_ID']
del karte_verloren_gestohlen['MEMBERID']
del karte_verloren_gestohlen['COMCHANNELID']
del karte_verloren_gestohlen['STATUS']
del karte_verloren_gestohlen['SUMMARY']
del karte_verloren_gestohlen['SSR_ROW_ID']
del karte_verloren_gestohlen['SSR_CREATED']
del karte_verloren_gestohlen['USER_ID_CREATED']
del karte_verloren_gestohlen['SSR_LAST_UPD']
del karte_verloren_gestohlen['USER_ID_LAST_UPD']
del karte_verloren_gestohlen['DWH_INSERTED']
del karte_verloren_gestohlen['DWH_UPDATED']
del karte_verloren_gestohlen['CATID']
del karte_verloren_gestohlen['END_DT']
del karte_verloren_gestohlen['DWH_UPDATED_BY']
del karte_verloren_gestohlen['BRANCHID']
del karte_verloren_gestohlen['DWH_INSERTED_BY']
del karte_verloren_gestohlen['VORGANGSID']
del karte_verloren_gestohlen['PAR_SSR_ROW_ID']
del karte_verloren_gestohlen['MOOD']
del karte_verloren_gestohlen['FWD_COUNT']
del karte_verloren_gestohlen['COM_REASON']
del karte_verloren_gestohlen['IDENT_MTHD']
del karte_verloren_gestohlen['ORIGIN_CARD']
del karte_verloren_gestohlen['SSR_KONTAKTGRUNDGRUPPE']
del karte_verloren_gestohlen['CATID_PB']
del karte_verloren_gestohlen['MODIFICATION_NUM']
del karte_verloren_gestohlen['CATID_SIEBEL']
del karte_verloren_gestohlen['PARTNERID']
del karte_verloren_gestohlen['COMSUBREASONID']
del karte_verloren_gestohlen['SSR_POINTS']
del karte_verloren_gestohlen['X_INCIDENT_DT']
del karte_verloren_gestohlen['X_ARCHIVE_REF']
del karte_verloren_gestohlen['POOLNAME']

In [27]:
karte_verloren_gestohlen.head()


Out[27]:
COM_REASON_REP COMREASONID DESCRIPTION
5 Karte verloren/gestohlen 117 Ersatzkartenbestellung Einzelkarte - 308342017...
6 Karte verloren/gestohlen 117 ESK bestellt\n\nBetreff:: Karte verloren / Ihr...
11 Karte verloren/gestohlen 117 Rückfrage nach Doc. Verlust\n\nBetreff:: Karte...
13 Karte verloren/gestohlen 117 Ersatzkarte für Mitsammler veranlasst\nBetreff...
14 Karte verloren/gestohlen 117 Ersatzkartenbestellung Einzelkarte - 308342616...

In [28]:
def createNewDesc(data):
    try:
        return str(data).split('Betreff')[1]
    except:
        return ''
karte_verloren_gestohlen['Betreff']=map(createNewDesc,karte_verloren_gestohlen['DESCRIPTION'])

In [32]:
karte_verloren_gestohlen.head(18)


Out[32]:
COM_REASON_REP COMREASONID DESCRIPTION Betreff
5 Karte verloren/gestohlen 117 Ersatzkartenbestellung Einzelkarte - 308342017...
6 Karte verloren/gestohlen 117 ESK bestellt\n\nBetreff:: Karte verloren / Ihr...
11 Karte verloren/gestohlen 117 Rückfrage nach Doc. Verlust\n\nBetreff:: Karte...
13 Karte verloren/gestohlen 117 Ersatzkarte für Mitsammler veranlasst\nBetreff...
14 Karte verloren/gestohlen 117 Ersatzkartenbestellung Einzelkarte - 308342616...
15 Karte verloren/gestohlen 117 Ersatzkartenbestellung Einzelkarte - 308342003...
18 Karte verloren/gestohlen 117 done\n\nBetreff:: Karte verloren / Ihr Anliege...
19 Karte verloren/gestohlen 117 EK bestellt\n\nBetreff:: karte verloren / Ihr ...
20 Karte verloren/gestohlen 117 Ersatzkartenbestellung Einzelkarte - 308342394...
21 Karte verloren/gestohlen 117 Ersatzkartenbestellung vorgenommen\n\nBetreff:...
24 Karte verloren/gestohlen 117 Ersatzkartenbestellung Einzelkarte - 308342219...
27 Karte verloren/gestohlen 117 erl.\n\nBetreff:: Bitte neue Karte zusenden / ... :: Bitte neue Karte zusenden / Ihr Anliegen (m...
31 Karte verloren/gestohlen 117 Ersatzkartenbestellung Einzelkarte - 308342117...
32 Karte verloren/gestohlen 117 Doku?\n\nBetreff:: Verlust / Ihr Anliegen (max...
33 Karte verloren/gestohlen 117 EK bestellt.\n\nBetreff:: Karte verloren / Ihr... :: Karte verloren / Ihr Anliegen (max. 400 Zei...
34 Karte verloren/gestohlen 117 Ersatzkartenbestellung Einzelkarte - 308342949...
35 Karte verloren/gestohlen 117 EK bereits veranlasst ->\n..................\n...
40 Karte verloren/gestohlen 117 Ersatzkartenbestellung Einzelkarte - 308342807...

In [33]:
from nltk.tokenize import sent_tokenize, word_tokenize

In [38]:
def tokenizeSent(data):
    try:
        return nltk.sent_tokenize(str(data))
    except:
        return ''
karte_verloren_gestohlen['Sent_Token']=map(tokenizeSent,karte_verloren_gestohlen['DESCRIPTION'])

In [39]:
karte_verloren_gestohlen.head(18)


Out[39]:
COM_REASON_REP COMREASONID DESCRIPTION Betreff Sent_Token
5 Karte verloren/gestohlen 117 Ersatzkartenbestellung Einzelkarte - 308342017...
6 Karte verloren/gestohlen 117 ESK bestellt\n\nBetreff:: Karte verloren / Ihr...
11 Karte verloren/gestohlen 117 Rückfrage nach Doc. Verlust\n\nBetreff:: Karte...
13 Karte verloren/gestohlen 117 Ersatzkarte für Mitsammler veranlasst\nBetreff...
14 Karte verloren/gestohlen 117 Ersatzkartenbestellung Einzelkarte - 308342616...
15 Karte verloren/gestohlen 117 Ersatzkartenbestellung Einzelkarte - 308342003...
18 Karte verloren/gestohlen 117 done\n\nBetreff:: Karte verloren / Ihr Anliege...
19 Karte verloren/gestohlen 117 EK bestellt\n\nBetreff:: karte verloren / Ihr ...
20 Karte verloren/gestohlen 117 Ersatzkartenbestellung Einzelkarte - 308342394...
21 Karte verloren/gestohlen 117 Ersatzkartenbestellung vorgenommen\n\nBetreff:...
24 Karte verloren/gestohlen 117 Ersatzkartenbestellung Einzelkarte - 308342219...
27 Karte verloren/gestohlen 117 erl.\n\nBetreff:: Bitte neue Karte zusenden / ... :: Bitte neue Karte zusenden / Ihr Anliegen (m...
31 Karte verloren/gestohlen 117 Ersatzkartenbestellung Einzelkarte - 308342117...
32 Karte verloren/gestohlen 117 Doku?\n\nBetreff:: Verlust / Ihr Anliegen (max...
33 Karte verloren/gestohlen 117 EK bestellt.\n\nBetreff:: Karte verloren / Ihr... :: Karte verloren / Ihr Anliegen (max. 400 Zei...
34 Karte verloren/gestohlen 117 Ersatzkartenbestellung Einzelkarte - 308342949...
35 Karte verloren/gestohlen 117 EK bereits veranlasst ->\n..................\n...
40 Karte verloren/gestohlen 117 Ersatzkartenbestellung Einzelkarte - 308342807...

In [ ]: