python
1 2# -*- coding: utf-8 -*- 3import pandas as pd 4 5#csvファイルの読み込み 6df = pd.read_csv("./test2.csv") 7 8#datetimeとidの列だけを抽出する 9df = df[["datetime","id"]] 10 11#datatimeの数値の形式を計算処理ができる形にする 12df["new"] = pd.to_datetime(df["datetime"]) 13 14#速度処理(秒速) 15i = 0 16a = 1 17while i <= 8 and a < 8: 18 19 #idが同じのがあったら、秒速を求める 20 if df.iloc[i][1] == df.iloc[a][1]: 21 22 #分が同じ時は、秒数だけを計算する 23 if df["new"][i].minute == df["new"][a].minute: 24 df["speed"] = 50 // (df["new"][a].second - df["new"][i].second) 25 print(50 // (df["new"][a].second - df["new"][i].second)) 26 27 #分を秒に変えて、計算する 28 else: 29 df["speed"] = 50 // ((df["new"][a].minute - df["new"][i].minute) * 60 + (df["new"][a].second - df["new"][i].second)) 30 31 #elif df.iloc[i][1] != df.iloc[a][1]: 32 #df["speed"] = "nothing" 33 34 i += 1 35 a += 1 36 37#csvファイルの出力形式の確認 38print(df) 39 40#csvファイルの書きだし(秒速の値をcsvファイルに書き込む) 41df.to_csv('test2.csv') 42
質問
仕事の方で、csvファイルをpythonのpandasを使用して書き込みの作業を行なっているのですが、pandasを使って、特定の行にそれぞれ違う値をいれることは可能でしょうか?
可能ならば、参考サイトなど、具体的な方法を教えていただけるとありがたいです
読み込むcsvファイル
,datetime,id
0,2019-02-21 17:15:14.500000,9
1,2019-02-21 17:15:15.700000,9
2,2019-02-21 17:15:33.300000,117
3,2019-02-21 17:16:11.600000,213
4,2019-02-21 17:16:12.700000,213
5,2019-02-21 17:16:12.700000,193
6,2019-02-21 17:19:10.300000,533
7,2019-02-21 17:19:11.400000,533
8,2019-02-21 17:20:14.800000,681
回答2件
あなたの回答
tips
プレビュー