我有一个数据框,其中有一列路径名。我可以使用以下路径访问这些路径:
for i, p in enumerate(df['path']):
但是,我现在正在寻找从每个输出文件中提取值的方法。
csv文件如下:
# some values
# some values : some values
# some values : some values
# some values : some values
# some string : the value I want
# some string : some values
是否可以提取此值并将其插入到我的数据框中?
我相信正则表达式可以解决问题。我只是不确定确切的方法。我有一些模板代码,如下所示:
if re.match(r"something", p):
df = pd.read_csv(p)
df.iloc[i, value_column] = the value I want
答案 0 :(得分:0)
以下是使用内置split
从text / csv中提取值的解决方案:
def get_value(string):
array = string.split(": ") # maybe without the white space
return array[0] if len(array) == 1 else array[1]
get_value('some values')
# 'some values'
get_value('some string : the value I want')
# 'the value I want'
或者,使用正则表达式
re.sub(r'.*\:\s*(.*)', r'\1', 'some values')
# 'some values'
re.sub(r'.*\:\s*(.*)', r'\1', 'some string : the value I want')
# 'the value I want'
答案 1 :(得分:0)
在更清晰的环境中被问到这个问题时,我得到了帮助。 用于csv文件中的一行。
if re.match('# some string\s*:\s*([^\n]+)', line):
number = re.match('# some string\s*:\s*([^\n]+)', line).group(1)