从包含字符串的数据框列中提取最大的数字

时间:2019-06-26 06:42:22

标签: python regex pandas dataframe typeerror

我有一个熊猫数据框,其中包含从csv文件提取的列。我想提取其中一列包含包含特定数字的字符串。它显示了一个TypeError,我认为这是因为该列的对象数据类型,但是在提取工作期间设置该列的数据类型都没有,也没有astype在该特定列上工作。早些时候,我从Excel文件中提取了同一列,并且正则表达式对此起作用了,没问题。

工作头如下:

  Transaction Date                                        PARTICULARS DEPOSITS WITHDRAWALS Amount Dr/Cr  Calc_Amount  Calc RRN Number RRN-AMT
0       2019-05-30              UPI/914923281641/UPI/raghu.m.v2016@o/        0       32.86  32.86    Dr        32.86     914923281641    0100
1       2019-05-30              UPI/915000512028/UPI/hemanth1999kuma/        0        0.95   0.95    Dr         0.95     915000512028    0100
2       2019-05-30          UPI/RVSL915000512028/UPI/hemanth1999kuma/     0.95           0   0.95    Cr        -0.95     915000512028    0100
3       2019-05-30  UPI/914923451855/UPI/tpmanzoor55@okh/Federal Bank     1.19           0   1.19    Cr        -1.19     914923451855    0100
4       2019-05-30              UPI/914923339262/UPI/ravimaurya8735@/        0        0.94   0.94    Dr         0.94     914923339262    0100

通过此代码:

for i, row in bank_statement_30May.iterrows():
    result = [e for e in re.split("[^0-9]",row[1]) if e != '']
    bank_statement_30May.loc[i,"Calc RRN Number"] = max(map(int,result))

这是第二个代码中的错误:

    result = [e for e in re.split("[^0-9]",row[1]) if e != '']
  File "C:\Users\Suraj Joshi\AppData\Local\Programs\Python\Python37\lib\re.py", line 213, in split
    return _compile(pattern, flags).split(string, maxsplit)
TypeError: cannot use a string pattern on a bytes-like object

1 个答案:

答案 0 :(得分:0)

你的意思是?

bank_statement_30May['Calc RRN Number'] = bank_statement_30May['Calc RRN Number'].astype(str).applymap(lambda x: int(max(x, key=int)))