2016-08-05 5 views
0

この種の操作を実行する最適な方法があるかどうかは疑問でした。パンダ:キャラクタに応じて1つの列にセルを分割し、その部分を条件付きの?

user\library\photos\item 

このようにパスが含まれている私は、ファイルパスの列を持って、我々は呼んでよCドライブは、データフレームの列で、他の列はのDir [1]、ディレクトリ[2です]、...、ディレクトリ[n]は、ITEM

私は「\」でCドライブ内のセルを分割したい、最後の文字列がITEM列に追加されるように、他のものは数量に応じて前のディレクトリに追加されます。

私の現在の粗いアクションは、いくつかのWhileループですが、これについてはPandasでもっと良い方法がありますか?私は図書館が初めてです。

私はパンダがこの種のもので作られていないことを知っています、私は部分的にライブラリを学ぶために使用しています。

乾杯!

+2

サンプルデータを入力してください。質問に答え、今後の読者が何が起こっているのかを理解するのに役立ちます。 – piRSquared

+0

'while'ループと、少なくとも望ましい出力の例を見るのにも役立ちます。 – Jeff

答えて

0

Seriesのstr属性でアクセスされるsplit関数を使用して、ドライブパスを構成ディレクトリに分割することができます。その後、結果として得られる一連のリストをDataFrameに変換します。これは次のように、1行で行うことができます

dir_df = pd.DataFrame(df['C Drive'].str.split('\\').tolist()) 
dir_df.columns = ['Dir [{}]'.format(col) for col in dir_df.columns] 
dir_df.columns[-1] = 'ITEM' 

あなたが同様にdir_df'C Drive'列をしたい場合、あなたは、単にそのようにそれを追加することができます:ところで

dir_df['C Drive'] = df['C Drive'] 

、あなたは可能性があります'\'をエスケープしたいデータを読み込んでいる間に '/'または '\'に変換してください。それ以外の場合は、奇妙なことが起こるかもしれません。

関連する問題