Pythonでプログラムを作成して、特定の時系列データをリサンプリングし、月末の最大頻度を見つけます
時系列と最大月末頻度の結果があると仮定します
DataFrame is: Id time_series 0 1 2020-01-05 1 2 2020-01-12 2 3 2020-01-19 3 4 2020-01-26 4 5 2020-02-02 5 6 2020-02-09 6 7 2020-02-16 7 8 2020-02-23 8 9 2020-03-01 9 10 2020-03-08 Maximum month end frequency: Id time_series time_series 2020-01-31 4 2020-01-26 2020-02-29 8 2020-02-23 2020-03-31 10 2020-03-08
解決策
これを解決するには、以下の手順に従います-
-
1つの列でデータフレームを定義します
d = {'Id': [1,2,3,4,5,6,7,8,9,10]} df = pd.DataFrame(d)
-
start =’01/01/2020’、periods =10内にdate_range関数を作成し、freq =‘W’を割り当てます。指定された開始日から次の週の開始日までの10の日付を生成し、df [‘time_series’]として保存します。
df['time_series'] = pd.date_range('01/01/2020', periods=10, freq='W')
-
リサンプルメソッドを適用して、月末の最大頻度を見つけます。
df.resample('M', on='time_series').max())
例
理解を深めるために、以下の実装を見てみましょう-
import pandas as pd d = {'Id': [1,2,3,4,5,6,7,8,9,10]} df = pd.DataFrame(d) df['time_series'] = pd.date_range('01/01/2020', periods=10, freq='W') print("DataFrame is:\n",df) print("Maximum month end frequency: ") print(df.resample('M', on='time_series').max())
出力
DataFrame is: Id time_series 0 1 2020-01-05 1 2 2020-01-12 2 3 2020-01-19 3 4 2020-01-26 4 5 2020-02-02 5 6 2020-02-09 6 7 2020-02-16 7 8 2020-02-23 8 9 2020-03-01 9 10 2020-03-08 Maximum month end frequency: Id time_series time_series 2020-01-31 4 2020-01-26 2020-02-29 8 2020-02-23 2020-03-31 10 2020-03-08
-
回文であり、Pythonで指定された時間の後に来る時間を見つけます
24時間形式の時刻をHH:MMとして表す文字列sがあるとします。これにより、HHは0〜23の範囲になり、MMは0〜59の範囲になります。次に近い時刻を見つける必要があります。文字列として読み取ったときの回文。そのような文字列がない場合は、-1を返します。 したがって、入力が「22:22」の場合、出力は「23:32」になります。 これを解決するには、次の手順に従います- n:=sのサイズ hour_string:=sのサブ文字列[インデックス0から2まで] 分:=s [インデックス3から5]の部分文字列で、整数に変換します rev_hour:=hour_stringを
-
PythonでO(n)時間とO(1)余分なスペースで最大繰り返し数を見つけます
配列内の要素が0からk-1の範囲にある場合、サイズnの配列があるとします。ここで、kは正の整数として表され、k<=nです。この配列で最大繰り返し数を見つける必要があります。 したがって、入力がk=8およびA=[3、4、4、6、4、5、2、8]の場合、出力は4になります。 これを解決するには、次の手順に従います- n:=Aのサイズ 0からnの範囲のiの場合、実行 A [A [i] mod k]:=A [A [i] mod k] + k max_val:=A [0] 結果:=0 1からnの範囲のiの場合、実行します max_valの場合、