如何用包含在column.row

时间:2019-05-07 10:01:50

标签: python pandas

很抱歉,有什么事情还不够清楚 首先,我已将Outlook电子邮件数据导出到csv文件 此CSV文件包含称为subject,from,to .....等的列 我现在需要的全部是要用包含该行的列中值的Sub String替换此列Subject中的每一行中的值 例如: 我在主题中排了一行,并充满了像这样的数据:

LDELE44328 SSV report_R4_42313 (Delta)
LDELM44358 ....................etc
LDELS44258 ....................etc

LSINE44328 SSV report_R4_42313 (Delta)
LSINI44328 ....................etc
LSINS44328 ....................etc

LCAIS12345 ....................etc
LCAIN12345.....................etc

我们注意到我要更改的字符串包含5个字符和5个数字

这是我想使用的最简单的代码

 data2 = pd.read_csv (r'C:\Users\mwx707566\Desktop\test.CSV', usecols= 
 ['Subject','Body', 'From: (Name)', 'To: (Name)' ])
 pd.set_option('display.max_rows', None)
 data2.columns = data2.columns.str.replace(' ','')
 data2['x'] = data2['Subject'].str.extract(pat='^L(DEL|SIN|CAI)')
 data2['x'] = data2['Subject'].str[1:4]
 print(data2)
 data2.Subject

data2.Subject输出:

 0           LDELE44328 SSV report_R4_42313 (Delta)
 1                SSV Progress Tracker @ 6 May-2019
 2                SSV Progress Tracker @ 6 May-2019
 3                SSV Progress Tracker @ 5 May-2019
 4                SSV Progress Tracker @ 5 May-2019
 5        RE: LDELE14029 SSV report_R3_42312(Delta)
 6        RE: LDELE14029 SSV report_R3_42312(Delta)
 7        RE: LDELW14978 SSV report_R3_42322(Delta)
 8        RE: LDELW14978 SSV report_R3_42322(Delta)
 9       RE: LDELE34167 SSV report_R3_42252 (Delta)
 10          LDELE54006 SSV report_R3_42202 (Delta)
 11    LCAIN10111 SSV Report_R1_41091 ( New Cairo )
 12    LCAIN10111 SSV Report_R1_41091 ( New Cairo )
 13    LCAIN10111 SSV Report_R1_41091 ( New Cairo )

我想要这样的输出:

  0           LDELE44328
  5        LDELE14029
  6        LDELE14029
  7        LDELW14978
  8        LDELW14978
  9       LDELE34167

我们注意到有一个包含三个静态子字符串的三个静态子字符串CAI,SIN,DEL

那么,如何创建这种情况下的方法,我想将所有这些行替换为同一行中的那些子字符串?

1 个答案:

答案 0 :(得分:0)

使用str.extract

x = df['col'].str.extract(pat='(L(?:DEL|CAI|SIN).\d{5})').dropna()

print(x)

输出:

             0
0   LDELE44328
5   LDELE14029
6   LDELE14029
7   LDELW14978
8   LDELW14978
9   LDELE34167
10  LDELE54006
11  LCAIN10111
12  LCAIN10111
13  LCAIN10111