前提・実現したいこと
目的:フォルダ内の大量のcsvファイルを読み込み、
個々のファイルにそれぞれヘッダーを作成したうえで名付けて保存。
別のプログラム(この質問では関係ありません)でのグラフ化を簡単にする
このプログラムでは、複数のCSVファイルを一つにまとめてしまっている(pd.concat)ため、
複数のファイルに分けて保存したい。
発生している問題・エラーメッセージ
このようにして元のCSVファイルのデータの誤認識を修正しています。 print(df) print(df['time'].str.split(',', expand=True)) df2 = pd.concat([df, df['time'].str.split(',', expand=True)], axis=1).drop('time', axis=1) print(df2) df3 = pd.concat([df['date'], df['time'].str.split(',', expand=True)], axis=1) print(df3) df3.rename(columns={0: 'time', 1: 'light',2:'temperature',3:'humidity',4:'soilmoisture'}, inplace=True) print(df3) #ここまで挿入画像の部分のプログラム ------------------------------------------------------------------------------------------------------------------------------ ### 該当のソースコード import glob import pandas as pd import os # ファイル読み込み files = glob.glob('L:\AMANI DATA 0114/*.csv') # ファイルを読み込んでデータフレーム作成 df = pd.concat( (pd.read_csv(f, header=None, # ファイルを読み込む.読み込む際にHeader名は無視する names=('date','time','light','temperature','humidity','soilmoisture'), # Headerの名前を決める dtype={'date':'str','time':'str','light':'str','temperature':'str','humidity':'str','soilmoisture':'str'}) # データの型を定義 for f in files)) # ファイルを連続で読み込む print(df) print(df['time'].str.split(',', expand=True)) df2 = pd.concat([df, df['time'].str.split(',', expand=True)], axis=1).drop('time', axis=1) print(df2) df3 = pd.concat([df['date'], df['time'].str.split(',', expand=True)], axis=1) print(df3) df3.rename(columns={0: 'time', 1: 'light',2:'temperature',3:'humidity',4:'soilmoisture'}, inplace=True) print(df3) #df3.to_csv(filename , sep=',',header=None ,index=None) #グループ化したCSVデータの書き出し(区切文字は','としています。)
試したこと
個々のファイルごとに読み込み、データフレーム化をしようと試みましたが
反応がありません。
コード import pandas as pd import glob import os DATA_DIR='./data' files = glob.glob(os.path.join(DATA_DIR,'*.csv')) df_list=[] for file in files: tmp_df = pd.read_csv(file, header=None, names=('date','time','light','temperature','humidity','soilmoisture'), # Headerの名前を決める dtype={'date':'str','time':'str','light':'str','temperature':'str','humidity':'str','soilmoisture':'str'},encoding="sjis") # データの型を定義 tmp_df['filename'] = os.path.basename(file) df_list.append(tmp_df) df = pd(df_list, ignore_index=True) print(df) print(df['time'].str.split(',', expand=True)) df2 = pd.concat([df, df['time'].str.split(',', expand=True)], axis=1).drop('time', axis=1) print(df2) df3 = pd.concat([df['date'], df['time'].str.split(',', expand=True)], axis=1) print(df3) df3.rename(columns={0: 'time', 1: 'light',2:'temperature',3:'humidity',4:'soilmoisture'}, inplace=True) print(df3) filename = '*.csv/'+ date.replace('/','') + '.csv' df3.to_csv(filename, sep=',',header=None ,index=None)
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
Visual studio code
バージョン: 1.41.1 (user setup)
コミット: 26076a4de974ead31f97692a0d32f90d735645c0
あなたの回答
tips
プレビュー