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

Pythonでプログラムを作成して、データフレームインデックスを正と負の方向に2ピリオドシフトします


データフレームがあり、正と負の方向に2ピリオドだけシフトインデックスがあると仮定します。

shift the index by three periods in positive direction
                     Id Age
2020-01-01 00:00:00 NaN NaN
2020-01-01 12:00:00 NaN NaN
2020-01-02 00:00:00 1.0 10.0
2020-01-02 12:00:00 2.0 12.0
2020-01-03 00:00:00 3.0 14.0
shift the index by three periods in negative direction
                     Id Age
2020-01-01 00:00:00 3.0 14.0
2020-01-01 12:00:00 4.0 11.0
2020-01-02 00:00:00 5.0 13.0
2020-01-02 12:00:00 NaN NaN
2020-01-03 00:00:00 NaN NaN

解決策

これを解決するには、以下の手順に従います-

  • start =’01 -01-2020’、periods =5、freq =’12H’でパンダの時系列を作成します

  • データフレームを定義する

  • df.shift()を適用して、インデックスを正の方向に2ピリオドシフトします。

df.shift(2,axis=0)
  • df.shift()を適用して、インデックスを負の方向に2ピリオドシフトします。

df.shift(-2,axis=0)

理解を深めるために、次のコードを見てみましょう-

import pandas as pd
time_series = pd.date_range('01-01-2020', periods = 5, freq ='12H')
df = pd.DataFrame({"Id":[1, 2, 3, 4, 5],
                     "Age":[10, 12, 14, 11, 13]},
                        index = time_series)
print("Dataframe is:\n",df)
print("shift the index by three periods in positive direction")
print(df.shift(2,axis=0))
print("shift the index by three periods in negative direction")
print(df.shift(-2,axis=0))

出力

Dataframe is:
                   Id Age
2020-01-01 00:00:00 1 10
2020-01-01 12:00:00 2 12
2020-01-02 00:00:00 3 14
2020-01-02 12:00:00 4 11
2020-01-03 00:00:00 5 13
shift the index by three periods in positive direction
                     Id Age
2020-01-01 00:00:00 NaN NaN
2020-01-01 12:00:00 NaN NaN
2020-01-02 00:00:00 1.0 10.0
2020-01-02 12:00:00 2.0 12.0
2020-01-03 00:00:00 3.0 14.0
shift the index by three periods in negative direction
                     Id Age
2020-01-01 00:00:00 3.0 14.0
2020-01-01 12:00:00 4.0 11.0
2020-01-02 00:00:00 5.0 13.0
2020-01-02 12:00:00 NaN NaN
2020-01-03 00:00:00 NaN NaN

  1. Pythonプログラムのリストで正と負の数を数える

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −反復可能なリストが与えられているので、その中の正と負の数を数えて表示する必要があります。 アプローチ1-反復構成(for)を使用したブルートフォースアプローチ =0であるかどうかを確認して、正の数をフィルター処理する必要があります。条件がtrueと評価された場合は、pos_countを増やし、そうでない場合は、neg_countを増やします。 例 list1 = [1,-2,-4,6,7,-23,45,-0] pos_count, neg_count = 0, 0 # enhanced for loop

  2. リスト内の正と負の数を数えるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 反復可能なリストを指定すると、反復可能で使用可能なすべての正と負の数をカウントする必要があります。 彼女は2つのアプローチについて話し合います- ブルートフォースアプローチ ラムダインライン関数の使用 アプローチ1-ブルートフォース方式 例 list1 = [1,-9,15,-16,13] pos_count, neg_count = 0, 0 for num in list1:    if num >= 0: