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

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

新規登録して質問してみよう
ただいま回答率
85.35%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

1775閲覧

python csvファイル列抽出繰り返し構文について

o-fk

総合スコア32

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/07/19 05:46

201908_14_14101010.csv というファイルから
"測定局コード","日付","時","WD(16Dir)","WS(m/s)","TEMP(℃)" の列のみ抽出し
14101010.csvという新しいファイルを作ります。

実行したコード

import pandas as pd df = pd.read_csv("sora2019_8/201908_14_14101010.csv",encoding='shift_jis') df = df[["測定局コード","日付","時","WD(16Dir)","WS(m/s)","TEMP(℃)"]] df.to_csv('14101010.csv')

ここまでは成功したのですが

この動作を
201908_14_14101010.csv
201908_14_14101020.csv
201908_14_14102010.csv
・・・

と実行していく繰り返し構文をつくるにはどうすればいいですか。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

globで指定フォルダ配下の全ファイルのリストを取得
正規表現でファイル名の指定文字列を取得
出力

こんな感じかと

Python

1import pandas as pd 2import glob 3import re 4 5for f in glob.glob('sora2019_8/*.csv'): 6 df = pd.read_csv(f, encoding='shift_jis') 7 df = df[["測定局コード","日付","時","WD(16Dir)","WS(m/s)","TEMP(℃)"]] 8 9 m = re.search('_(\d+.csv)', f) 10 df.to_csv(m.group(1)) 11

投稿2020/07/19 06:08

aokikenichi

総合スコア2240

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

o-fk

2020/07/19 07:59

実行できました。ありがとうございました!
o-fk

2020/07/19 08:31

すみません、補足で伺いたいのですが、出力先csvのヘッダーの日本語が文字化けしていました。どのように対処すれば良いでしょうか。。。
aokikenichi

2020/07/19 09:03

https://note.nkmk.me/python-pandas-to-csv/ などご覧ください Pythonは特に設定しなければUTF-8です お使いのPCがWindowsならばShift-JISかCP932です(どちらもほぼ同じものと考えてとりあえずは大丈夫です) MacならばMac専用の文字コードが標準と思います encodingを使って指定するとよろしいかと思います
guest

0

以下のような感じでできそうです。

Python

1for file in ['201908_14_14101010.csv', '201908_14_14101020.csv', '201908_14_14102010.csv']: 2 df = pd.read_csv(file,) 34 out_file = file.split('_')[2] 5 #print(out_file) 6 df.to_csv(out_file)

投稿2020/07/19 06:07

can110

総合スコア38341

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

o-fk

2020/07/19 07:59

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問