リスト値に基づいてPandasデータフレームの行を更新します

アントニッチ

私は次のようなDataFrameを持っています:

product units_sold  week
 sku        5        W01
 sku        3        W02
 sku        2        W03
 sku        4        W04
 sku        6        W05
 sku        5        W36
 sku        3        W38
 sku        2        W39
 sku        4        W40

'週'では、w37が欠落しており、列の順序が間違っています。

必要なすべての行と正しい順序のリストがあります。

week_list = ['W36','W37','W38','W39','W40','W01','W02','W03','W04','W05']

必要な出力は次のとおりです。

   product units_sold  week
     sku        5        W36
     sku        0        W37
     sku        5        W38
     sku        2        W39
     sku        4        W40
     sku        6        W01
     sku        3        W02
     sku        2        W03
     sku        4        W04
     sku        6        W05

W37が配置され、「unit_sold」が0の場合

私はかなり大きなDataFrameを持っており、おそらく他の行が欠落している可能性があるため、1列のソリューションを追加するだけでは適していません。

pd.sort_valuesとpd.categoricalで試してみました:

def sorter(column):
    reorder = week_list
    cat = pd.Categorical(column, categories=reorder, ordered=True)
    return pd.Series(cat)

df.sort_values(by="week", key=sorter)

これは正しいシーケンスを設定するのに役立ちましたが、「w37」がまだ欠落しているため、問題は解決されません。

このリストに基づいてDataFrame行の値を更新する方法はありますか?

ヘンリー・イク

IIUCは使用するだけreindexです:

print (df.set_index("week").reindex(week_list).fillna({"product":"sku", "units_sold": 0}))

     product  units_sold
week                    
W36      sku         5.0
W37      sku         0.0
W38      sku         3.0
W39      sku         2.0
W40      sku         4.0
W01      sku         5.0
W02      sku         3.0
W03      sku         2.0
W04      sku         4.0
W05      sku         6.0

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Pandasデータフレームのリストに基づいて列の値を比較します

分類Dev

列の値に基づいてデータフレームの行を返します。Rスクリプト

分類Dev

別の行の値に基づいてデータフレームの行の値を更新しますか?

分類Dev

pandasデータフレームの値に基づいて文字列の値を更新します

分類Dev

別のデータフレームの値に基づいてデータフレームを更新します

分類Dev

条件に基づいてデータフレームの値をリストに移動します

分類Dev

リストを使用して、別のデータフレームに基づいてデータフレームの列を更新します

分類Dev

pandasデータフレームからのしきい値に基づいて上位n行を返します

分類Dev

Python Pandasは、行の値に基づいて3つのデータフレームをマージします

分類Dev

条件と値のリストに基づいてpysparkデータフレームを作成します

分類Dev

列の値に基づいてリストからデータフレームを選択します

分類Dev

行ごとのリスト値に基づいてPandasデータフレームを並べ替える

分類Dev

Pythonの条件に基づいて、行1または行2のいずれかの値に基づいてデータフレーム列を更新します

分類Dev

データフレーム操作:データフレームの特定の列をキー値列に基づいてリストに変換します

分類Dev

行の値に基づいて、データフレーム内のセルを右にシフトします

分類Dev

Pythonの別のデータフレームによるリストに基づいて、以前の日付で値を更新します

分類Dev

そのデータフレームの値に基づいて、データフレームのリストの名前を作成します

分類Dev

列の共通値に基づいて、大きなデータフレームをデータフレームのリストに分割します

分類Dev

リストまたは別の列の値に基づいて、Pandasデータフレームで列を動的に選択します

分類Dev

条件としての値のリストに基づいて、データフレームから行を削除します

分類Dev

pandasデータフレーム内の文字列のリストを含む別の列に基づいて列値を取得します

分類Dev

別のデータフレーム値に基づいて、パンダデータフレームの行からシリーズ値を削除します

分類Dev

行の値に基づいてパンダのデータフレームからリストを取得します

分類Dev

値に基づいてデータフレームのすべての行に値を入力します

分類Dev

エントリに基づいてデータフレームの値をカウントします

分類Dev

最大列値に基づいてリストからデータフレームを選択します

分類Dev

カテゴリ列のdinstict値の数に基づいて、pandasデータフレームからすべての行を削除します

分類Dev

列の最大のインデックスと値に基づいて、データフレームの行をフィルタリングします

分類Dev

タイムスタンプ値に基づいてデータフレーム行を連結します

Related 関連記事

  1. 1

    Pandasデータフレームのリストに基づいて列の値を比較します

  2. 2

    列の値に基づいてデータフレームの行を返します。Rスクリプト

  3. 3

    別の行の値に基づいてデータフレームの行の値を更新しますか?

  4. 4

    pandasデータフレームの値に基づいて文字列の値を更新します

  5. 5

    別のデータフレームの値に基づいてデータフレームを更新します

  6. 6

    条件に基づいてデータフレームの値をリストに移動します

  7. 7

    リストを使用して、別のデータフレームに基づいてデータフレームの列を更新します

  8. 8

    pandasデータフレームからのしきい値に基づいて上位n行を返します

  9. 9

    Python Pandasは、行の値に基づいて3つのデータフレームをマージします

  10. 10

    条件と値のリストに基づいてpysparkデータフレームを作成します

  11. 11

    列の値に基づいてリストからデータフレームを選択します

  12. 12

    行ごとのリスト値に基づいてPandasデータフレームを並べ替える

  13. 13

    Pythonの条件に基づいて、行1または行2のいずれかの値に基づいてデータフレーム列を更新します

  14. 14

    データフレーム操作:データフレームの特定の列をキー値列に基づいてリストに変換します

  15. 15

    行の値に基づいて、データフレーム内のセルを右にシフトします

  16. 16

    Pythonの別のデータフレームによるリストに基づいて、以前の日付で値を更新します

  17. 17

    そのデータフレームの値に基づいて、データフレームのリストの名前を作成します

  18. 18

    列の共通値に基づいて、大きなデータフレームをデータフレームのリストに分割します

  19. 19

    リストまたは別の列の値に基づいて、Pandasデータフレームで列を動的に選択します

  20. 20

    条件としての値のリストに基づいて、データフレームから行を削除します

  21. 21

    pandasデータフレーム内の文字列のリストを含む別の列に基づいて列値を取得します

  22. 22

    別のデータフレーム値に基づいて、パンダデータフレームの行からシリーズ値を削除します

  23. 23

    行の値に基づいてパンダのデータフレームからリストを取得します

  24. 24

    値に基づいてデータフレームのすべての行に値を入力します

  25. 25

    エントリに基づいてデータフレームの値をカウントします

  26. 26

    最大列値に基づいてリストからデータフレームを選択します

  27. 27

    カテゴリ列のdinstict値の数に基づいて、pandasデータフレームからすべての行を削除します

  28. 28

    列の最大のインデックスと値に基づいて、データフレームの行をフィルタリングします

  29. 29

    タイムスタンプ値に基づいてデータフレーム行を連結します

ホットタグ

アーカイブ