こんにちは私は出発地から目的地df
までのさまざまな旅行のデータを含むデータフレームを開始時刻とともに持っています。特定の時間枠の間および時間枠内の旅行をカウントしたいとします。そう、X
Y
T
X
Y
15 min
df:
X Y T
1 2 2015-12-30 22:30:00.0
1 2 2015-12-30 22:35:00.0
1 2 2015-12-30 22:40:00.0
1 2 2015-12-30 23:40:00.0
3 5 2015-11-30 13:40:00.0
3 5 2015-11-30 13:44:00.0
3 5 2015-11-30 19:54:00.0
が欲しいです
dfO:
X Y count
1 2 3
3 5 2
X
からY
私が行ったすべての旅行を数えるために:
tmp = df.groupby(["X", "Y"]).size()
特定の時間間隔で同じ旅行のみをカウントしたいという事実も考慮に入れるにはどうすればよいdt
ですか?
おそらくあなたは探していpd.TimeGrouper
ます。DataFrameにDatetimeIndexがある場合は、DataFrameの行を時間間隔でグループ化できます。(MaxUのソリューションは、DatetimeIndexを使用せずに時間間隔でグループ化する方法を示していることに注意してください。)
import pandas as pd
df = pd.DataFrame({'T': ['2015-12-30 22:30:00.0',
'2015-12-30 22:35:00.0',
'2015-12-30 22:40:00.0',
'2015-12-30 23:40:00.0',
'2015-11-30 13:40:00.0',
'2015-11-30 13:44:00.0',
'2015-11-30 19:54:00.0'],
'X': [1, 1, 1, 1, 3, 3, 3],
'Y': [2, 2, 2, 2, 5, 5, 5]})
df['T'] = pd.to_datetime(df['T'])
df = df.set_index(['T'])
result = df.groupby([pd.TimeGrouper('15Min'), 'X', 'Y']).size()
print(result)
収量
T X Y
2015-11-30 13:30:00 3 5 2
2015-11-30 19:45:00 3 5 1
2015-12-30 22:30:00 1 2 3
2015-12-30 23:30:00 1 2 1
これには必要な情報が含まれています
T X Y
2015-11-30 13:30:00 3 5 2
2015-12-30 22:30:00 1 2 3
もっと。他の行をどのような基準で除外するかは明確ではありません。基準を説明すると、目的のDataFrameを正確に作成できるはずです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加