フォルダー内の複数のCSVファイルを読み込んでマージしてデータをプロットできるコードを作成しました。すべてのファイルは同じ列とヘッダーを持ちますが、行はさまざまです。ここに私のコードは複数のCSVファイルをマージし、すべてのデータの同じプロットに連続時間をプロットする
import matplotlib.pyplot as plt
import glob
import pandas as pd
import os
def get_merged_csv(flist, **kwargs):
return pd.concat([pd.read_csv(f, **kwargs) for f in flist], ignore_index=True)
path = 'C:\\Users\C253271\Desktop\FTIR Data\Data Files\\' # define path
allfiles =glob.glob(os.path.join(path, "*.csv"))
column_names = ['Relative Time','Peakat2188', 'water']
data = get_merged_csv(allfiles, index_col=None)
data.columns = column_names
time_in_minutes = pd.to_timedelta(data['Relative Time']).dt.total_seconds()/60
x=time_in_minutes
y1=data['Peakat2188']
y2=data['water']
fig=plt.figure()
ax1 = fig.add_subplot(111)
ax1.plot(x,y1,label='Peak at 2188 , color='b')
ax1.plot(x,y2, label='water', color='r')
ax1.set_ylabel('Volume Fraction',fontsize=10)
ax1.set_xlabel('Absolute time (mins)',fontsize=10)
plt.title('SVC-Evaporator Monitoring', fontsize=20)
ax1.legend(bbox_to_anchor=(0.8,1.02), loc=3, borderaxespad=0.)
私のデータは3つのファイルからです。
FTIR Data1.csv
Relative Time,Peak at 2188 ,water
00:00:51,0.572157,0.179023
00:02:51,0.520037,0.171217
00:04:51,0.551843,0.221285
00:06:50,0.566279,0.209182
FTIR Data2.csv
Relative Time,Peak at 2188 ,water
00:00:45,0.522157,0.169023
00:02:31,0.470037,0.161217
00:04:36,0.501843,0.211285
00:06:20,0.516279,0.199182
00:08:45,-0.027304,0.0061351
FTIR Data3.csv
Relative Time,Peak at 2188,water
00:00:51,0.622157,0.199023
00:02:51,0.570037,0.191217
00:04:51,0.601843,0.241285
私は私が行うことができる午前、x軸、上の絶対時間で1つのプロット上のすべてのCSVファイルからデータをプロットしたいです。私は私のデータをマージすると、それはここに見えるが、私は2番目のファイルから始まる前の終了時間にすべての新しい時間を追加したい。 expの場合、行3の時刻は、2番目のファイルの最初の行4に追加したい最初のファイルの最後の時刻です。開始時間は(00:06:50 + 00:00:45 = 00:07:35)とし、次回の5行目(00:07:35 + 00:02:31 = 00:10:06)のようになります。 3つのファイルからのデータを連続してプロットすることです。私はそれが大きな問題ではないはずです。誰かがすぐに私のコードに何かを加えて私を助けることができれば感謝します。おかげで100万
Merged data from 3 files
Relative Time Peakat2188 water
0 00:00:51 0.572157 0.179023
1 00:02:51 0.520037 0.171217
2 00:04:51 0.551843 0.221285
3 00:06:50 0.566279 0.209182
4 00:00:45 0.522157 0.169023
5 00:02:31 0.470037 0.161217
6 00:04:36 0.501843 0.211285
7 00:06:20 0.516279 0.199182
8 00:08:45 -0.027304 0.006135
9 00:00:51 0.622157 0.199023
10 00:02:51 0.570037 0.191217
11 00:04:51 0.601843 0.241285
おかげ@Maartenファーブル。はい、これは私が探しているものです。しかし、最初に、各csvファイルから相対時間の3つのデータフレーム(df1、df2、df3)を作成します。この場合、私は3つのファイルしか持っていませんが、n個のファイルがあればどうなりますか?私はn個のファイルから相対時間データフレームを作成したいと思います。あなたがそれを助けることができれば、私はその部分で少しでも苦労しているでしょう、素晴らしいでしょう。 –
申し訳ありません@MaartenFabré、私のコメントで少し修正。相対時間だけでなく、実際にはすべての列を含む各CSVファイルのデータフレーム。 –
私はglobbingを含む編集を掲示しました。これは、データファイルが検出される順序に依存します。私はこれが語彙的にソートされていると仮定します。私はこれが 'data9.csv'と' data10.csv'の間に何を与えるのか分かりません。 –