字符串排序cs

2024-09-27 21:24:23 发布

您现在位置:Python中文网/ 问答频道 /正文

import pandas as pd

rawDF = pd.read_csv('D:\Project\python\Grade\GradeDataRaw.csv',names=['GradeCol'])

filteredDF = rawDF[rawDF['GradeCol'].str.contains('EVCS:|BVCS:|LOW POINT STA')]
print(filteredDF)

filename = 'GradeOut.csv'

filteredDF.to_csv(filename,index=False, encoding='utf-8')

CSV文件中的输出为

格拉德科尔

EVCS: 210+080.907

BVCS: 210+080.907

LOW POINT STA =208+108.133\PLOW POINT ELEV = 66.849\PPVI STA = 209+126.315\PPVI ELEV = 66.762\PA.D = 1.413%\PK

LOW POINT STA =208+108.133\PLOW POINT ELEV = 66.849\PPVI STA = 209+126.000\PPVI ELEV = 66.762\PA.D = 1.413%\PK

希望只有“PPVI STA=209+126.315”在数据帧行中有此字符串可用,其他带有EVCS和BVCS的行保持不变,数字部分可以在每一行中变化。 使用extract方法在不匹配的行中获取NaN值,这不是目的。你知道吗


Tags: csvfilenamelowpointpdplowpaelev
2条回答

这样就可以了。你知道吗

def parse(string):
    start = string.find('\\') + 1
    end   = string.find('.')

    while string[end] != '\\':
        end += 1

    return string[start : end]

IIUC公司:

样品测向:

In [99]: df
Out[99]:
                                                 txt
0         info \GPK HEK = 209+126.315\info ends here
1  blah-blah-blah GPK HEK = 1 + 2.33333end of string

解决方案:

In [100]: df['txt'].str.extract(r'(GPK HEK\s*=\s*\d+\s*\+\s*\d+\.\d+)', expand=False)
Out[100]:
0    GPK HEK = 209+126.315
1    GPK HEK = 1 + 2.33333
Name: txt, dtype: object

相关问题 更多 >

    热门问题