質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

DateTime

多くのプログラミング言語におけるDateTimeオブジェクトは、日付と時間に関する演算と出力を行います。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

解決済

1回答

181閲覧

pythonでcsvファイルの中にある時刻から時間のみを取り出したい

syosinsya8

総合スコア5

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

DateTime

多くのプログラミング言語におけるDateTimeオブジェクトは、日付と時間に関する演算と出力を行います。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

1グッド

0クリップ

投稿2024/04/11 13:17

実現したいこと

CSVファイルのtimestamp [ns]という列からUNIX TIMEを取り出して日本時間に変換する。
変換した日本時間から動画の撮影開始時刻を引いた値から00:00:02.088479997みたいに時刻(ミリ秒まで)だけを取り出すプログラムを作成したい。
実行結果は

00:00:02.088479997
00:00:02.088479432
00:00:02.088472358

といった具合に表示させたい

発生している問題・分からないこと

実行すると 0 days 00:00:02.088479997
0 days 00:00:02.092518997
0 days 00:00:02.096479997


と表示され、 0 daysをなくして表示させたいがやり方がよく分からないです。

該当のソースコード

Python

1import pandas as pd 2import csv 3from datetime import datetime 4import time 5 6start_time=1702293673897000000#動画の撮影開始時刻 7 8df = pd.read_csv('ファイルのパス') 9df = df[["timestamp [ns]","gaze x [px]","gaze y [px]","azimuth [deg]","worn","elevation [deg]"]] 10 11 12timestamp_unix= list(df['timestamp [ns]'])#timestamp [ns]を取り出す(unix time) 13for i in timestamp_unix:#変換した時間をtimestamp 14 15 timestamp=pd.to_datetime(timestamp_unix)-pd.to_datetime(start_time) 16 17df['timestamp [ns]']= timestamp #timestamp.secondsはできた 18print(df)#timestamp [ns]","gaze x [px]","gaze y [px]","azimuth [deg]","worn","elevation [deg] 19

csvファイルtimestamp[ns]の中身

11702293675985479997, 21702293675989518997, 31702293675993479997, 41702293675997536997, 51702293676005487997, 61702293676009466997, 71702293676013541997, 81702293676017500997, 91702293676025457997, 101702293676029513997, 111702293676033470997, 121702293676037494997, 131702293676045555997, 141702293676049450997, 151702293676053464997, 161702293676057460997, 171702293676065477997, 18

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

timestamp.secondsだと秒だけしか表示されずミリ秒まで表示できない

補足

特になし

tatsu99👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

2000-01-01 は適当で構いません。

python

1start_time=1702293673897000000#動画の撮影開始時刻 2 3df = pd.read_csv('timestamp.csv') 4df = df[["timestamp [ns]","gaze x [px]","gaze y [px]","azimuth [deg]","worn","elevation [deg]"]] 5 6df['timestamp [ns]'] = (pd.to_datetime('2000-01-01') + (pd.to_datetime(df['timestamp [ns]']) - pd.to_datetime(start_time))).dt.time 7print(df['timestamp [ns]']) 8 9# 0 00:00:02.088479 10# 1 00:00:02.092518 11# : 12# 15 00:00:02.160460 13# 16 00:00:02.168477 14# Name: timestamp [ns], dtype: object

投稿2024/04/11 14:07

melian

総合スコア19825

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

syosinsya8

2024/04/11 16:16

回答ありがとうございます。 試したところ問題が解決しました! ベストアンサーに選ばせていただきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問