質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

解決済

車両の名称ごとにファイルを分割する

shin_shin
shin_shin

総合スコア96

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

2回答

0リアクション

1クリップ

125閲覧

投稿2018/02/05 02:57

現在、ある車両の情報を扱っています。
これから、車両の種類ごとに、分析に入ります。

なので、最初に、フォルダに入っている計1000個のテキストファイルを車両の名称ごとに分類し、別々のフォルダに保存したいです。そのコードを教えていただきたいです。

前提:
(1)車両がいくつあるのか?どんな名称なのか?はわからない。
→つまり、事前に自分で、ある特定のフォルダを手動で作ることはできない。
(2)車両名称を参照する場所(行と列)は、わかる。
→df.loc[1,"name"]に必ずある

私が考えている流れ:
(1)1000個のファイルの一つ一つにdf.loc[1,"name"]を参照し、その名称をset()に格納し、重複のない車両名称を得る。その後、手動でフォルダを作る。
(2)その後は、if文で名称に合わせて、作成したフォルダに格納していく。

python

import glob import os import pandas as pd #カレントディレクトリの設定 os.chdir("share_folder/") #共有フォルダから、すべてのファイルパスの取得 filepath = glob.glob("*.txt") #車両情報の名称を取得 unique_names = [] for i in range(len(filepath)): df = pd.read_table(filepath[i], sep=",") names = set(df.loc[1,"name"]) unique_names.append(names) ########################################## #######名称の数だけ、フォルダを作る######### ########################################## #フォルダを分類する for i in range(len(filepath)): df = pd.read_table(filepath[i]) if df.loc[1,"name"] == "ファイル名称1": df.to_csv("filepath[i]", sep=",") elif df.loc[1,"name"] == "ファイル名称2": df.to_csv("filepath[i]", sep=",") else df.loc[1,"name"]: df.to_csv("desktop/Nan/filepath[i]", sep=",")

よろしくお願いいたします。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。