如果字符串包含每一行的特定值,请替换字符串

时间:2019-05-04 14:39:42

标签: python pandas csv parsing

我试图解析在不同行上包含长字符串的csv。 如果字符串包含特定值,我想将每个长字符串替换为出现的每一行。

为什么要替换长字符串是因为csv-file打破了字符串以适合行。

csv文件的示例是:

number     |      payload
1230          00023030303030303030303030303030...
1234          00033030303030303030330303030303...
1236          30303030303030004303030303030303...
1238          0005303030...
1240          (blank)
1241          (blank)
1248          0006303030...

长字符串中的以下唯一四位数字值是十六进制形式1-100(十六进制1-63)的计数器。

因此,如果该行包含一个带有计数器的值,但我没有成功,我就尝试替换该值。

问题在于字符串中的四个uniq值可能与计数器不匹配,因此将其替换为粗略值。

def stringconv(filefind)->str:
    strcount=pd.read_csv(filefind, sep='\t', usecols=[2], na_filter=False, names=col_name)
    for i in range(256):
        counter = "{:02x}".format(i)
        hxstr = strcount["payload"].str.match("00" + str(counter))
        hexstring = strcount[strcount["payload"].str.match("00" + str(counter))]
        print(hexstring)
        j = ("00" + str(counter))
        for x in hxstr:
            if x == True:
                strcount.replace(x,j, inplace=True)

上面显示的现有文件应看起来像:

number     |     payload
1230             0002
1234             0003
1236             0004
1238             0005
1240             (blank)
1241             (blank)
1248             0006
...              ...

0 个答案:

没有答案