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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

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

Q&A

解決済

1回答

160閲覧

Pandasのキーワードで抽出

gymgym

総合スコア97

Python 3.x

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

0グッド

0クリップ

投稿2018/07/06 07:30

create_at ... favorite_count 0 Wed Jul 01 08:42:39 +0000 2018 ... 0.0 1 Wed Jul 01 08:41:22 +0000 2018 ... 0.0 2 Wed Jul 02 08:41:04 +0000 2018 ... 0.0 3 Wed Jul 02 08:40:56 +0000 2018 ... 0.0 4 Wed Jul 03 08:40:06 +0000 2018 ... 0.0 5 Wed Jul 03 08:39:53 +0000 2018 ... 0.0 6 Wed Jul 03 08:39:40 +0000 2018 ... 0.0 7 Wed Jul 04 08:39:02 +0000 2018 ... 0.0 8 Wed Jul 04 08:38:30 +0000 2018 ... 0.0 9 Wed Jul 04 08:38:15 +0000 2018 ... 0.0

以上のようなデータフレームから、create_atの"Jul 01"の要素を抽出したいと考えています。
どのようにPythonでコードを実行すると実現できるでしょうか。

よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

文字列検索でも抽出できるとは思うのですが、日時データは datetime型で扱うべきかと思います。

とりあえず、'create_by'列を

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

にて'datetime'型に変換した後に、月と日で

df[(df['create_at'].dt.month == 7) & (df['create_at'].dt.day == 1)]

または年も含めて

df[df['create_at'].dt.date == dt.date(2018,7,1)]

のようにするのが良いと思います。

以下動作サンプル

Python

1import io 2import pandas as pd 3import datetime as dt 4 5data = """ 6create_at,favorite_count 7Wed Jul 01 08:42:39 +0000 2018,0.0 8Wed Jul 01 08:41:22 +0000 2018,0.0 9Wed Jul 02 08:41:04 +0000 2018,0.0 10Wed Jul 02 08:40:56 +0000 2018,0.0 11Wed Jul 03 08:40:06 +0000 2018,0.0 12Wed Jul 03 08:39:53 +0000 2018,0.0 13Wed Jul 03 08:39:40 +0000 2018,0.0 14Wed Jul 04 08:39:02 +0000 2018,0.0 15Wed Jul 04 08:38:30 +0000 2018,0.0 16Wed Jul 04 08:38:15 +0000 2018,0.0 17""" 18 19df = pd.read_csv(io.StringIO(data)) 20df['create_at'] = pd.to_datetime(df['create_at']) 21 22print(df[(df['create_at'].dt.month == 7) & (df['create_at'].dt.day == 1)]) 23# create_at favorite_count 24#0 2018-07-01 08:42:39 0.0 25#1 2018-07-01 08:41:22 0.0 26 27print(df[df['create_at'].dt.date == dt.date(2018,7,1)]) 28# create_at favorite_count 29#0 2018-07-01 08:42:39 0.0 30#1 2018-07-01 08:41:22 0.0

投稿2018/07/06 07:56

magichan

総合スコア15898

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問