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

質問編集履歴

1

質問内容を改善。

2020/11/29 12:41

投稿

kei_124981
kei_124981

スコア11

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,7 @@
1
- 以下のようなcsvがあるのですが、それぞれスタート時刻がバラバラなので、Dataframe同士で計算させる際に数値がずれてしまいます。
1
+ 以下のようなcsvがあるのですが、それぞれのcsvのスタート時刻がバラバラなので、2つのCSV同士で計算させる際にがずれてしまいます。
2
2
 
3
- 読み込む際に行を飛ばして読み込んでもいいです、同じDatatime数字同士を行ごとに計算させる方法はないでしょうか?
3
+ 2つcsvのtime列一致するもの同士計算させる方法はないでしょうか?
4
- 2020-11-07 14:33:35までで一致するもの同士で計算させたいです。
4
+ 2020-11-07 14:33:35までの小数点を除いた時刻で一致するもの同士で計算させたいです。
5
5
 
6
6
  多分色々なやり方があるかと思いますが、アイデアを下さると幸いです。
7
7
  よろしくお願いいたします。
@@ -22,7 +22,7 @@
22
22
  19172 2020-11-07 20:33:34.774001 1620653.0
23
23
 
24
24
 
25
- [読み込んだDataframe1]
25
+ [読み込んだDataframe2]
26
26
  time price
27
27
  0 2020-11-07 14:33:36.304415 1605085.0
28
28
  1 2020-11-07 14:33:37.362915 1605085.0
@@ -36,7 +36,7 @@
36
36
  20188 2020-11-07 20:33:34.845943 1607738.0
37
37
  20189 2020-11-07 20:33:35.929324 1607738.0
38
38
 
39
- [現段階]
39
+ [csvの読み込みと計算]
40
40
  ```Python
41
41
  import numpy as np
42
42
  import pandas as pd
@@ -47,6 +47,7 @@
47
47
  input_encoding = "shift_jis"
48
48
  output_dir = ""
49
49
  data = pd.read_csv(input_dir + input_filename, encoding=input_encoding, usecols = [1, 2])
50
+
50
51
  price = pd.read_csv(input_dir + input_filename, encoding=input_encoding, usecols = [2])
51
52
 
52
53
  #読み込みデータ2
@@ -55,8 +56,25 @@
55
56
  input_encoding2= "shift_jis"
56
57
  output_dir2= ""
57
58
  data2 = pd.read_csv(input_dir2 + input_filename2, encoding=input_encoding2, usecols = [1, 2])
59
+
58
60
  price2 = pd.read_csv(input_dir2 + input_filename2, encoding=input_encoding2, usecols = [2])
59
61
 
60
- #計算←これだと0目から順に計算するため時刻がずれてしまう。
62
+ #行いたい計算
61
63
  print((price / price2)*100)
62
- ```
64
+ ```
65
+
66
+ [上記の計算で出力されたもの]
67
+ 0行目が、dataframe1の「2020-11-07 14:33:35.604666 」と
68
+ dataframe2の「2020-11-07 14:33:36.304415」を計算しているので2秒ずれた状態で計算してしまっている。
69
+ price
70
+ 0 100.829177
71
+ 1 100.835781
72
+ 2 100.841451
73
+ 3 100.845594
74
+ 4 100.838991
75
+ ... ...
76
+ 20185 NaN
77
+ 20186 NaN
78
+ 20187 NaN
79
+ 20188 NaN
80
+ 20189 NaN