2
年、月、日、時および分の列を含む.csvファイルから読み取ったパンダデータフレームにnp.datetime64
列を追加し、インデックスとして使用したいとします。私は、別々の列を組み合わせてdatetime文字列の列を作成しました。pandasデータフレーム列をnp.datetime64に変換
import numpy as np
import pandas as pd
filename = 'test.csv'
df = pd.read_csv(filename, header=0, usecols = [2,3,4,5,6], names = ['y','m','d','h','min'],dtype = {'y':'str','m':'str','d':'str','h':'str','min':'str'}) #read csv file into df
df['datetimetext'] = (df['y']+'-'+df['m']+'-'+df['d']+' '+df['h']+':'+df['min']+':00')
ので、データフレームは、次のようになります。
y m d h min datetimetext
0 1993 09 06 00 30 1993-09-06 00:30:00
1 1993 09 06 01 00 1993-09-06 01:00:00
2 1993 09 06 01 30 1993-09-06 01:30:00
3 1993 09 06 02 00 1993-09-06 02:00:00
4 1993 09 06 02 30 1993-09-06 02:30:00
......
今、私は私が
df['datetime'] = np.datetime64(df['datetimetext'])
を書きたいnp.datetime64
としてフォーマット日時に列を追加したいが、エラーが発生する
ValueError: Could not convert object to NumPy datetime
データフレームの各行を反復処理する必要がありますか、より洗練されたソリューションがありますか?あなたが持っているものと
にインデックスに割り当てます
rename
を使用して、列の名前を変更し、これは代わりに、今の辞書ですデータフレームの?私は追加のラベル付きカラムを持っているので、データフレームを好むでしょう – doctorer
'm'はあなたのカラムの名前を変換のための適切な名前にマップする辞書です...私はポストを更新します。 1分 – piRSquared
美しい、ありがとう。元の 'pd.read_csv'行の列名を変更したので、あなたの解決策は' df.index = pd.to_datetime(df [['年'、 '月'、 '日'、 'h '、' m ']]) '(私は実際のコードに追加の列があるので、ここに列挙しておきました)。ありがとう – doctorer