パンダのデータフレームにシリーズを追加する

ジョン

データフレームp_mdがあります。インデックスはDateTimeです。インデックスがその日の午後5時より前の場合、列の値がその日の午後11時である、Finishという新しい列を作成したいと思います。それ以外の場合、午後5時以降の場合、[完了]列の値は翌日の午後11時です。

私がこれまでに持っているもの:

p_md["Finish"] = pd.Timestamp(datetime(p_md.index.year, p_md.index.month, p_md.index.day, 23, 0, 0))

p_md.loc[(p_md.index.hour > 17), "Finish"] = p_md.Finish + pd.Timedelta(days=1)

これを行うと、日時コンストラクターがintではなくint64Indexを取得していることを示すTypeErrorが発生します。だから私は行をに変更しました

p_md["Finish"] = pd.Timestamp(datetime(p_md.index.year[0], p_md.index.month[0], p_md.index.day[0], 23, 0, 0))

これはコンパイルされて実行されますが、おそらく[0]が原因で、データフレームの値の最初の行のみが使用されます。

テーブル作成コードのリクエスト:csvファイルからDateTimeを読み取っただけですが、基本的に最初のテーブルは次のようになります。

df = pd.DataFrame()

df['DateTime'] = pd.date_range("1/1/2017", periods=500, freq="H")
df.set_index("DateTime", inplace=True)
df["Test"] = 0
ヴィコ

私があなたを正しく理解しているなら、私は「仕上げ」を次のように作成します:

p_md["Finish"] = p_md.index

次に、シリーズ適用(https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.apply.html)関数を使用して、目的の出力を取得します。

p_md["Finish"] = p_md["Finish"].apply(lambda dt: pd.Timestamp(dt.year, dt.month, dt.day, 23, 0 ,0) + pd.Timedelta(days=1) 
                                                 if dt.hour > 17 else pd.Timestamp(dt.year, dt.month, dt.day, 23, 0 ,0))

または、別の関数を作成して、それを適用に割り当てることができます。

def cvt_date(dt):
    new_dt = pd.Timestamp(dt.year, dt.month, dt.day, 23, 0 ,0)
    if dt.hour > 17:  new_dt = new_dt + pd.Timedelta(days=1)
    return new_dt

p_md['Finish'] = p_md['Finish'].apply(cvt_date)

これが私が得る元のデータと出力です:

2016-03-04 03:48:41-2016-03-04 23:00:00
2016-02-05 22:08:25-2016-02-06 23:00:00
2016-12-11 19:13 :54-2016-12-12 23:00:00

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

パンダシリーズのリストをパンダデータフレームに変換する

分類Dev

2つのパンダシリーズを列ごとにデータフレームに追加します

分類Dev

パンダシリーズをデータフレームに変換する

分類Dev

Python、パンダ:シリーズをデータフレームに追加する方法

分類Dev

シリーズの値のリストをデータフレームパンダに変換する方法

分類Dev

他のパンダのデータフレームに基づいてシリーズを更新する方法

分類Dev

パンダのシリーズにデータフレームの各列を追加するにはどうすればよいですか?

分類Dev

パンダのデータフレームとシリーズを要素ごとに乗算する

分類Dev

複数のパンダシリーズをデータフレームに結合する機能

分類Dev

データフレーム列の合計に基づいてパンダシリーズを作成する

分類Dev

1つのシリーズに基づいてデータフレームパンダを変更する

分類Dev

比較に基づいてパンダシリーズのデータフレームを更新する

分類Dev

パンダデータフレームをパンダシリーズに変換する

分類Dev

一意の列値パンダデータフレームごとに行シリーズを追加するにはどうすればよいですか?

分類Dev

パンダシリーズをデータフレームに変換して他のデータフレームとマージする方法

分類Dev

パンダはデータフレーム列にシリーズを追加します

分類Dev

データフレームとシリーズを連結するパンダ

分類Dev

パンダのデータフレームにジオロケーションデータを追加する

分類Dev

パンダのデータフレームにデータを追加する

分類Dev

パンダのデータフレームにデータを追加する

分類Dev

すべての行に同じシリーズがあるパンダデータフレームに行としてシリーズを適用します

分類Dev

パンダデータフレームに行シフトを追加する

分類Dev

パンダのデータフレームとシリーズをコピーする

分類Dev

パンダシリーズの要素を抽出し、データフレームの列の行と比較する方法

分類Dev

numpy配列値を持つパンダシリーズをデータフレームに変換する方法

分類Dev

パンダのデータフレーム分割シリーズ

分類Dev

パンダの計算されたシリーズをパンダのデータフレームにマージする方法

分類Dev

多次元のパンダシリーズをパンダデータフレームに変換するにはどうすればよいですか?

分類Dev

パンダのシリーズから1行n列のデータフレームを作成する方法は?

Related 関連記事

  1. 1

    パンダシリーズのリストをパンダデータフレームに変換する

  2. 2

    2つのパンダシリーズを列ごとにデータフレームに追加します

  3. 3

    パンダシリーズをデータフレームに変換する

  4. 4

    Python、パンダ:シリーズをデータフレームに追加する方法

  5. 5

    シリーズの値のリストをデータフレームパンダに変換する方法

  6. 6

    他のパンダのデータフレームに基づいてシリーズを更新する方法

  7. 7

    パンダのシリーズにデータフレームの各列を追加するにはどうすればよいですか?

  8. 8

    パンダのデータフレームとシリーズを要素ごとに乗算する

  9. 9

    複数のパンダシリーズをデータフレームに結合する機能

  10. 10

    データフレーム列の合計に基づいてパンダシリーズを作成する

  11. 11

    1つのシリーズに基づいてデータフレームパンダを変更する

  12. 12

    比較に基づいてパンダシリーズのデータフレームを更新する

  13. 13

    パンダデータフレームをパンダシリーズに変換する

  14. 14

    一意の列値パンダデータフレームごとに行シリーズを追加するにはどうすればよいですか?

  15. 15

    パンダシリーズをデータフレームに変換して他のデータフレームとマージする方法

  16. 16

    パンダはデータフレーム列にシリーズを追加します

  17. 17

    データフレームとシリーズを連結するパンダ

  18. 18

    パンダのデータフレームにジオロケーションデータを追加する

  19. 19

    パンダのデータフレームにデータを追加する

  20. 20

    パンダのデータフレームにデータを追加する

  21. 21

    すべての行に同じシリーズがあるパンダデータフレームに行としてシリーズを適用します

  22. 22

    パンダデータフレームに行シフトを追加する

  23. 23

    パンダのデータフレームとシリーズをコピーする

  24. 24

    パンダシリーズの要素を抽出し、データフレームの列の行と比較する方法

  25. 25

    numpy配列値を持つパンダシリーズをデータフレームに変換する方法

  26. 26

    パンダのデータフレーム分割シリーズ

  27. 27

    パンダの計算されたシリーズをパンダのデータフレームにマージする方法

  28. 28

    多次元のパンダシリーズをパンダデータフレームに変換するにはどうすればよいですか?

  29. 29

    パンダのシリーズから1行n列のデータフレームを作成する方法は?

ホットタグ

アーカイブ