オーダーメイドの時間のリストに基づいてパンダのタイムインデックスデータをサブセット化するにはどうすればよいですか?

ラグー

以下のように時間インデックスが付けられたデータフレームがあります。

date
2020-06-17 23:00:00    558
2020-06-17 23:01:00    184
2020-06-17 23:02:00    113
2020-06-17 23:03:00     85
2020-06-17 23:04:00     47
                      ... 
2020-07-01 18:48:00    203
2020-07-01 18:49:00    118
2020-07-01 18:50:00    236
2020-07-01 18:51:00    216
2020-07-01 18:52:00    198
Name: quarklgt, Length: 13478, dtype: int64

私は次のようなリストを持っています:

tss=["12:00:04","1:00:06","2:00:10","5:00:14","9:00:24"]

tssリストのみのデータフレームをサブセット化/フィルタリングするにはどうすればよいですか?私は試しましたdf.index.between_time(tss[0],len(tss)-1)が、それはその間のすべてのデータを提供します。大変感謝いたします。

ありがとう

セリウススティンガー

これが私のアプローチです。最初に、datetimeオブジェクトをdate形式とhh:mm:ss形式に分割する必要があります。その後、をhh:mm:ss文字列に変換.isin(tss)し、フィルタリングのマスクとして使用します。概して:

df = df.reset_index()
df = df[df['date'].map(lambda x: str(x).split()[1]).isin(tss)]

次に例を示します。2行目、4行目、6行目を保持することになっています。

df = pd.DataFrame({'date':['2020-06-17 23:00:00',
                           '2020-06-17 12:00:04',
                           '2020-06-17 23:02:00',
                           '2020-06-17 1:00:06',
                           '2020-06-17 23:03:00',
                           '2020-06-17 2:00:10',
                           '2020-07-01 18:48:00',
                           '2020-07-01 18:49:00',
                           '2020-07-01 18:50:00',
                           '2020-07-01 18:51:00',
                           '2020-07-01 18:52:00']}).set_index('date')

コードを使用した後:

df = df.reset_index()
df = df[df['date'].map(lambda x: str(x).split()[1]).isin(tss)]

出力は次のとおりです。

                  date
1  2020-06-17 12:00:04
3   2020-06-17 1:00:06
5   2020-06-17 2:00:10

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ