python初心者ですので不手際がありましたら申し訳ございません
説明が難しいので実際にデータで説明します
以下のようなdfがあります
実際はcsvファイルを読み込んでdfを作っていますが、今回は自身でdfを作成しました
df10 = pd.DataFrame({ 'tid' : [1, 2, 3, 4, 5],
'userid' : [1, 1, 1, 1, 1],
'latitude' : [1.1, 2.2, 3.3, 4.4, 5.5],
'longitude' : [11.1, 22.2, 33.3, 44.4, 55.5],
'date' : ['2017-01-01', '2017-01-05', '2017-02-05', '2017-02-05', '2017-04-03'],
'text' : ['a', 'b', 'c', 'd', 'e'] })
実際の各データの型はtid:int64、userid:int64、latitude:float64、longitude:float64、date:datetime64[ns]、text:objectになります(dateのみ異なります。今回は文字列になっています)
上記のようにuseridが同じ(一人のユーザのデータ)dfがあります
dateは日付でソートしてあります
これを1週間で区切り新しいカラム(仮にlabelとします)にラベルを付与したいです
具体的には以下のようなdfを作りたいです
df10_re = pd.DataFrame({ 'tid' : [1, 2, 3, 4, 5],
'userid' : [1, 1, 1, 1, 1],
'latitude' : [1.1, 2.2, 3.3, 4.4, 5.5],
'longitude' : [11.1, 22.2, 33.3, 44.4, 55.5],
'date' : ['2017-01-01', '2017-01-05', '2017-02-05', '2017-02-08', '2017-02-14'],
'text' : ['a', 'b', 'c', 'd', 'e'],
'label': ['1', '1', '2', '2', '3'] })
2017-01-01のデータは次のデータ(2017-01-05のデータ)と1週間以内なので同じラベルを付与します
2017-01-05のデータは次のデータ(2017-02-05のデータ)と1週間以上離れているので2017-02-05のデータには新たにラベルを付与します
2017-02-14のデータは2017-02-08から見れば1週間以内ですが2017-02-05から見れば1週間以上空いているので別のラベルを付与します
このように新しいラベルが付与された日から1週間以内のデータには同じラベルを付与します
*実際のカレンダー通りに1週間で区切りたいわけでは在りません
タイトルのニュアンスと異なると思うので注意してください
そして、次々と新しいラベルを付与していきます
説明分かりづらくて申し訳在りません
よろしくお願い致します
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/05 01:46