Python 字符串排序csv行
CSV文件中的输出为 格拉德科尔Python 字符串排序csv行,python,string,csv,pandas,Python,String,Csv,Pandas,CSV文件中的输出为 格拉德科尔 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' fi
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')
如果数据帧行中有此字符串,则希望只有“PPVI STA=209+126.315”,其他行的EVCS和BVCS保持不变,每行的数字部分可能不同。
使用extract方法在与不匹配的行中获取NaN值,这不是目的。这应该可以完成这项工作
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
IIUC:
样本DF:
def parse(string):
start = string.find('\\') + 1
end = string.find('.')
while string[end] != '\\':
end += 1
return string[start : end]
解决方案:
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
你期望的输出是什么?您想对所有行进行排序吗?
“info\GPK HEK=209+126.315\info结束于此”
-是整个字符串/行还是行中的一列?大家好,希望上面的编辑和更多信息有助于澄清预期的输出。欢迎访问该网站:您可能想阅读,并相应地重新回答您的问题。您好,MaxU,请查看新编辑的信息。
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