フルパス名が、1列になっているエクセルファイルがあります
この隣の列にファイル名をとり出した列を追加したいと思います
DataFrameの扱い方について調べたのですが解決に至りませんでした…
こちらでやったことですが
input_sheet_df = input_book.parse(ファイル名, 行数)
idx = input_sheet_df.astype(str).str.rfind('')
というところまでやってファイル名が始まるところをもとめました。 printすると文字位置がとれているのはわかりました。
ここで、まず情報を表示したい と考えて以下を試しています。
strings_data = input_sheet_df[idx+1:]
print(strings_data)
「DataFrameの使い方がわかっていない」という話でしょうか。 うまくググることもできずはまってしまったので質問をさせ
て頂いています。 すみませんがよろしくおねがいします。
失礼しました。
こちらでやったことですが
input_sheet_df = input_book.parse(ファイル名, 行数)
idx = input_sheet_df.astype(str).str.rfind('\\')
というところまでやってファイル名が始まるところをもとめました。
printすると文字位置がとれているのはわかったので、まず情報を表示したい
と考えて以下を試しています。
strings_data = input_sheet_df[idx+1:]
print(strings_data)
「DataFrameの使い方がわかっていない」という話でしょうか。
うまくググることもできずはまってしまったので質問をさせて頂いています。
すみませんがよろしくおねがいします。
> フルパス名が、1列になっているエクセルファイルがあります
フルパスを一つPythonで読み込んだら、下記に書かれてるやり方でそこからファイル名部分を取り出せます
https://note.nkmk.me/python-os-basename-dirname-split-splitext/
それをひたすら繰り返したらいいのではないですかね
(フルパスを分解するところを、自分で頑張ってコード書かなくても)
丁寧なご指摘ありがとうございました。
「それをひたすら繰り返したらいいのではないですかね」というのを構えしまったというのはあるのですが、forで回しておけばという話ですね。。。教えて頂いたOS.pathではなく、pathlibを使っていますが以下のようにやりました
for fullpath in input_sheet_df['検出ファイル名']:
p_file = pathlib.Path(fullpath)
p_file = p_file.name
print(p_file)
今後ともよろしくおねがいします(内容は恥ずかしいですが全体のコメント宛にも書いておきます)
低評価は取り消していただけるのですね。ちょっと安心しました ^^;
まぁ、聞いたようなやりかただと問題があったというのは認識した上で今後もお世話になりたいと考えています。
どうぞよろしくおねがいします。
回答1件
あなたの回答
tips
プレビュー