web-dev-qa-db-ja.com

pandasデータフレームから日付/年/月を抽出するにはどうすればよいですか?

pandas dataframeの 'date'列から年/日/月の情報を抽出しようとしています。サンプルコードは次のとおりです:

from datetime import datetime
def date_split(calendar):
  for row in calendar: 
    new_calendar={}
    listdate=datetime.strptime(row['date'],'%Y-%M-%D')

完全なコードは完成していませんが、この部分をテスト実行すると、次のようなエラーが発生し続けます。

----> 7         listdate=datetime.strptime(row['date'],'%Y-%M-%D')
TypeError: string indices must be integers

誰かが何か考えがありますか?

ところで、これは私が使用するデータフレームです(calendar_data):

enter image description here

5
Zhenyu Bo

必要なようです to_datetime

print (df['date'].dtype)
object

df['date'] = pd.to_datetime(df['date'])

print (df['date'].dtype)
datetime64[ns]

必要に応じて、新しい列に yearmonth および day を抽出します。

df['year'] = df['date'].dt.year
df['month'] = df['date'].dt.month
df['day'] = df['date'].dt.day

必要な場合list of date s:

listdate = df['date'].dt.date.tolist()
print (listdate)

[datetime.date(2017, 9, 5), 
 datetime.date(2017, 9, 4),
 datetime.date(2017, 9, 3), 
 datetime.date(2017, 9, 2),
 datetime.date(2017, 9, 1)]
10
jezrael