teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

修正

2020/01/19 04:13

投稿

Oncho
Oncho

スコア6

title CHANGED
File without changes
body CHANGED
@@ -1,10 +1,38 @@
1
- csvファイルのデータから、あるカラムのデータの二次微分を求めてグラフ化したいのですが、そのやり方が全く分かりません。
1
+ csvファイルのデータから、あるカラムのデータの二次微分を求めてグラフ化したいのですが、そのやり方が分かりません。
2
2
 
3
+ ```ここに言語を入力
3
- ![イメージ説明](d8ac93e1e67d4806dab2144ec4898795.png)
4
+ file = glob.glob("F:/*.csv")
4
5
 
6
+ data_list=[]
7
+ for all_file in file:
5
- ファイルの中身はこのようになっていて、右端の列がその対象で、xがWavelengthの列、yをCastanopsis.spの列というような感じです。(NaNとなっているのは移動平均をしたためです。)
8
+ data=pd.read_csv(all_file)
9
+ data_list.append(data)
6
10
 
11
+ #データのソート
12
+ df = pd.concat(data_list, sort=False, axis=1)
7
- おおまかな手順や参考サイトでもよろしいので、教えてください。
13
+ WaveLength=df.iloc[:,[0]]
14
+ Ref=df.drop("Wavelength",axis=1)
8
- python自体初心者なので詳細に教えていただければ幸いです。
15
+ Analy_data=pd.concat([WaveLength, Ref],axis=1)
16
+ print(Analy_data)
9
17
 
18
+ x_col = Analy_data.columns[0]
19
+ y_col = Analy_data.columns[1]
20
+ dx=np.gradient(x_col)
21
+ dy=np.gradient(y_col)
22
+
23
+ plt.plot(x,dy/dx)
24
+ ```
25
+ ```ここに言語を入力
26
+ TypeError Traceback (most recent call last)
27
+ <ipython-input-24-2d0e96d36f9d> in <module>
28
+ ----> 1 plt.plot(x,dy/dx)
29
+
30
+ TypeError: unsupported operand type(s) for /: 'list' and 'list'
31
+
32
+ ```
33
+ ファイルの中身はこのようになっていて、xがWavelengthの列、とりあえずyをCastanopsis.spの列というような感じで、微分したものをグラフにしたいのですがエラーが起きてしまいます。
34
+ ![イメージ説明](269b79dd7fbd27e3b2158d6e10ceca79.png)
35
+ リスト型というのがダメっぽいというのは分かるのですが、微分可能な形式に、どのように変換すればいいかが分かりません。
36
+
37
+ python自体初心者なのでよくわからず、詳細に教えていただければ幸いです。
10
- よろしくお願いします。
38
+ しくお願いします。