質問編集履歴

1

修正

2020/01/19 04:13

投稿

Oncho
Oncho

スコア6

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