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

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

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

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

228閲覧

[Python]データフレームにおける特定行の抽出

sanfuji

総合スコア5

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/06/25 09:34

位置情報データを扱っています。
データ量は約数千万レコードです。

"千代田区"に滞在したユーザを対象に、
"千代田区滞在前と後"それぞれの全データを"ユーザ毎"に抽出したいのですが、
なかなかうまくいきません。

知見のある方、ご教示いただけないでしょうか。
宜しくお願い致します。

【df】
Index|  id | Timestamp | citycode(=市区町村コード)
1  AA1  2022/06/10 11:07  001(品川区) ※適当です
2  AA1  2022/06/10 11:22  002(港区)
3  AA1  2022/06/10 12:10  003(千代田区)
4  AA1  2022/06/10 14:04  003(千代田区)
5  AA1  2022/06/10 14:41  004(新宿区)
6  AA1  2022/06/10 18:24  005(渋谷区)
7  BB4  2022/06/11 06:06  006(目黒区)
8  BB4  2022/06/11 07:58  006(目黒区)
9  BB4  2022/06/11 08:37  003(千代田区)
10  BB4  2022/06/11 17:50  003(千代田区)
11  BB4  2022/06/11 20:25  006(目黒区)
12  BB4  2022/06/11 22:33  006(目黒区)

         ↓
【千代田区滞在前のデータ抽出】
1  AA1  2022/06/10 11:07  001(品川区) ※適当です
2  AA1  2022/06/10 11:22  002(港区)
3  BB4  2022/06/11 06:06  006(目黒区)
4  BB4  2022/06/11 07:58  006(目黒区)

【千代田区滞在後のデータ抽出】
1  AA1  2022/06/10 14:41  004(新宿区)
2  AA1  2022/06/10 18:24  005(渋谷区)
3  BB4  2022/06/11 20:25  006(目黒区)
4  BB4  2022/06/11 22:33  006(目黒区)

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

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

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

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

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

guest

回答1

0

ベストアンサー

python

1import pandas as pd 2import io 3 4pd.set_option('display.unicode.east_asian_width', True) 5 6csv_data = ''' 7id,Timestamp,citycode 8AA1,2022/06/10 11:07,001(品川区) 9AA1,2022/06/10 11:22,002(港区) 10AA1,2022/06/10 12:10,003(千代田区) 11AA1,2022/06/10 14:04,003(千代田区) 12AA1,2022/06/10 14:41,004(新宿区) 13AA1,2022/06/10 18:24,005(渋谷区) 14BB4,2022/06/11 06:06,006(目黒区) 15BB4,2022/06/11 07:58,006(目黒区) 16BB4,2022/06/11 08:37,003(千代田区) 17BB4,2022/06/11 17:50,003(千代田区) 18BB4,2022/06/11 20:25,006(目黒区) 19BB4,2022/06/11 22:33,006(目黒区) 20''' 21df = pd.read_csv(io.StringIO(csv_data), parse_dates=['Timestamp']) 22 23# 24dfx = df.groupby('id').apply(lambda x: 25 x[x['Timestamp'] < x.loc[x['citycode'].eq('003(千代田区)'), 'Timestamp'].min()])\ 26 .reset_index(drop=True) 27 28dfy = df.groupby('id').apply(lambda x: 29 x[x['Timestamp'] > x.loc[x['citycode'].eq('003(千代田区)'), 'Timestamp'].max()])\ 30 .reset_index(drop=True) 31 32print(dfx) 33print(dfy) 34 35# 36 id Timestamp citycode 370 AA1 2022-06-10 11:07:00 001(品川区) 381 AA1 2022-06-10 11:22:00 002(港区) 392 BB4 2022-06-11 06:06:00 006(目黒区) 403 BB4 2022-06-11 07:58:00 006(目黒区) 41 42 id Timestamp citycode 430 AA1 2022-06-10 14:41:00 004(新宿区) 441 AA1 2022-06-10 18:24:00 005(渋谷区) 452 BB4 2022-06-11 20:25:00 006(目黒区) 463 BB4 2022-06-11 22:33:00 006(目黒区)

投稿2022/06/25 10:49

melian

総合スコア19703

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

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

sanfuji

2022/06/27 06:30

回答ありがとうございます。助かります。 記載いただいたコードの実行にて、イメージ通りのデータ抽出を確認しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問