質問編集履歴

1

2019/11/26 00:49

投稿

pcbginer
pcbginer

スコア25

test CHANGED
File without changes
test CHANGED
@@ -1,5 +1,117 @@
1
+ ```python
2
+
3
+
4
+
5
+ # -*- coding: utf-8 -*-
6
+
7
+ import pandas as pd
8
+
9
+
10
+
11
+ #csvファイルの読み込み
12
+
13
+ df = pd.read_csv("./test2.csv")
14
+
15
+
16
+
17
+ #datetimeとidの列だけを抽出する
18
+
19
+ df = df[["datetime","id"]]
20
+
21
+
22
+
23
+ #datatimeの数値の形式を計算処理ができる形にする
24
+
25
+ df["new"] = pd.to_datetime(df["datetime"])
26
+
27
+
28
+
29
+ #速度処理(秒速)
30
+
31
+ i = 0
32
+
33
+ a = 1
34
+
35
+ while i <= 8 and a < 8:
36
+
37
+
38
+
39
+ #idが同じのがあったら、秒速を求める
40
+
41
+ if df.iloc[i][1] == df.iloc[a][1]:
42
+
43
+
44
+
45
+ #分が同じ時は、秒数だけを計算する
46
+
47
+ if df["new"][i].minute == df["new"][a].minute:
48
+
49
+ df["speed"] = 50 // (df["new"][a].second - df["new"][i].second)
50
+
51
+ print(50 // (df["new"][a].second - df["new"][i].second))
52
+
53
+
54
+
55
+ #分を秒に変えて、計算する
56
+
57
+ else:
58
+
59
+ df["speed"] = 50 // ((df["new"][a].minute - df["new"][i].minute) * 60 + (df["new"][a].second - df["new"][i].second))
60
+
61
+
62
+
63
+ #elif df.iloc[i][1] != df.iloc[a][1]:
64
+
65
+ #df["speed"] = "nothing"
66
+
67
+
68
+
69
+ i += 1
70
+
71
+ a += 1
72
+
73
+
74
+
75
+ #csvファイルの出力形式の確認
76
+
77
+ print(df)
78
+
79
+
80
+
81
+ #csvファイルの書きだし(秒速の値をcsvファイルに書き込む)
82
+
83
+ df.to_csv('test2.csv')
84
+
85
+
86
+
87
+ ```
88
+
1
89
  ### 質問
2
90
 
3
91
  仕事の方で、csvファイルをpythonのpandasを使用して書き込みの作業を行なっているのですが、pandasを使って、特定の行にそれぞれ違う値をいれることは可能でしょうか?
4
92
 
5
93
  可能ならば、参考サイトなど、具体的な方法を教えていただけるとありがたいです
94
+
95
+
96
+
97
+ ### 読み込むcsvファイル
98
+
99
+ ,datetime,id
100
+
101
+ 0,2019-02-21 17:15:14.500000,9
102
+
103
+ 1,2019-02-21 17:15:15.700000,9
104
+
105
+ 2,2019-02-21 17:15:33.300000,117
106
+
107
+ 3,2019-02-21 17:16:11.600000,213
108
+
109
+ 4,2019-02-21 17:16:12.700000,213
110
+
111
+ 5,2019-02-21 17:16:12.700000,193
112
+
113
+ 6,2019-02-21 17:19:10.300000,533
114
+
115
+ 7,2019-02-21 17:19:11.400000,533
116
+
117
+ 8,2019-02-21 17:20:14.800000,681