Python
 Computer >> コンピューター >  >> プログラミング >> Python

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

  1. 回文であり、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を

  2. 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の場合、