パスを表す文字列を持つデータフレーム列があります。私は別の列の値としてそのパスのいくつかを使用したいと思います。列値のデータフレーム文字列の解析
文字列は次のように似ていると'Image Location'
C:\Users\Chris H\Desktop\20161017HCT116\Day 4\D2\Image9.tif
C:\Users\Chris H\Desktop\20161017HCT116\Day 4\D6\Image7.tif
C:\Users\Chris H\Desktop\20161017HCT116\Day 4\D7\Image3.tif
...
C:\Users\Chris H\Desktop\20161017HCT116\Day 6\D2\Image7.tif
C:\Users\Chris H\Desktop\20161017HCT116\Day 6\D2\Image1.tif
C:\Users\Chris H\Desktop\20161017HCT116\Day 6\D2\Image6.tif
C:\Users\Chris H\Desktop\20161017HCT116\Day 6\D3\Image4.tif
C:\Users\Chris H\Desktop\20161017HCT116\Day 6\D3\Image9.tif
...
C:\Users\Chris H\Desktop\20161017HCT116\Day 8\D1\Image4.tif
C:\Users\Chris H\Desktop\20161017HCT116\Day 8\D1\Image9.tif
C:\Users\Chris H\Desktop\20161017HCT116\Day 8\D1\Image3.tif
C:\Users\Chris H\Desktop\20161017HCT116\Day 8\D2\Image7.tif
C:\Users\Chris H\Desktop\20161017HCT116\Day 8\D2\Image1.tif
C:\Users\Chris H\Desktop\20161017HCT116\Day 8\D2\Image6.tif
の欄に今、私は次のことをやっている:
df['Interval'] = df['Image Location'].str.split('\\').apply(lambda x: x[5])
df['Device'] = df['Image Location'].str.split('\\').apply(lambda x: x[6])
これは明らかにあまり変更しないようにパスが必要IntervalとDeviceの値を見つけるために\
の数を数えているからです。
これを行うためのより堅牢な方法があるのだろうかと思います。例えば、Day #
やD#
のようなパターンを見つけることができます。
非常に興味深い解決策。 – agf1997