複数の条件でのパンダデータフレームのマージ

juls1909

パンダを使用して、フレームBで指定されたサイズのアセットライフ条件でフレームAをフレームBにマージしようとしています。mergeコマンドとmergeasofコマンドの両方を試しましたが、解決策が見つかりませんでした。

フレームA:

ID 材料 サイズ
0 A 9
1 B 21
2 B 14

フレームB:注(サイズは資産の寿命を指定します)

材料 サイズ<10 10 <サイズ<20 サイズ> 20
A 5 10 20
B 1 5 10

フレームCを形成するには:

ID 材料 アセットライフ
0 A 5
1 B 10
2 B 5
フェリス
# step1: set_index('Material') and stack frameB
dfB.columns = ['Material', 'Size <= 10', '10 < Size <= 20', 'Size > 20']
obj_size_map = dfB.set_index('Material').stack()

# print(obj_size_map)
# Material                 
# A         Size <= 10          5
#           10 < Size <= 20    10
#           Size > 20          20
# B         Size <= 10          1
#           10 < Size <= 20     5
#           Size > 20          10
# dtype: int64



# step2. use pd.cut to create a size_tag for frame A, with frameB's columns as labels
dfA['size_tag'] = pd.cut(dfA.Size, bins=[-np.inf, 10, 20, np.inf], labels=dfB.columns[1:])

# print(dfA)
#   ID Material  Size        size_tag
# 0   0        A     9       Size <= 10
# 1   1        B    21        Size > 20
# 2   2        B    14  10 < Size <= 20



# step3. use pandas DF's index to assign a new columns
dfC = dfA.set_index(['Material', 'tag'])
dfC['Asset Life'] = obj_size_map

# print(dfC)
#                           ID  Size         size_tag  Asset Life
# Material tag                                                   
# A        Size <= 10        0     9       Size <= 10           5
# B        Size > 20         1    21        Size > 20          10
#          10 < Size <= 20   2    14  10 < Size <= 20           5



# step4. output
result = dfC.reset_index()[['ID', 'Material', 'Asset Life']]

# print(result)
#    ID Material  Asset Life
# 0   0        A           5
# 1   1        B          10
# 2   2        B           5

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

複数の条件でのパンダデータフレームのマージ

分類Dev

複数の条件でのパンダデータフレームのマージ(python / pandas)

分類Dev

パンダ-複数の列で条件付きでデータフレームをマージします

分類Dev

パンダの複数のID列で複数のデータフレームをマージする

分類Dev

自己マージ後のパンダデータフレームでの重複

分類Dev

複数のデータフレームパンダをマージする

分類Dev

複数のパンダデータフレームをマージする

分類Dev

複数の列で2つのパンダデータフレームをマージする

分類Dev

パンダデータフレーム内の複数のif else条件の実装

分類Dev

パンダのデータフレームの条件付きマージ

分類Dev

複数の条件でパンダのデータフレームをフィルタリングする

分類Dev

パンダ:複数の列の2つのデータフレームをマージ(結合)

分類Dev

Python Pandas:複数の条件でデータフレームをマージする

分類Dev

複数の条件があるパンダデータフレームnumpy

分類Dev

パンダのデータフレームは、複数の列の条件で値を置き換えます

分類Dev

パンダのデータフレームは、特定の条件で複数の行を比較します

分類Dev

パンダデータフレーム内の1つに複数の行をマージ?

分類Dev

パンダ:複数の集計列を作成し、複数のデータフレームをエレガントな方法でマージします

分類Dev

パンダデータフレームの複数の最小値

分類Dev

複数のパンダデータフレームの共通部分

分類Dev

パンダデータフレームの複数の条件で行をドロップする

分類Dev

複数の条件下で2つのパンダデータフレームを左結合する

分類Dev

パンダ:データフレームのマージと比較

分類Dev

パンダデータフレームの動的マージ

分類Dev

Python:パンダは複数のデータフレームをマージします

分類Dev

パンダを使用して複数のデータフレームを1つにマージします

分類Dev

パンダを使用して複数のデータフレームを1つにマージします

分類Dev

パンダ:複数のデータフレームをマージし、列名を制御しますか?

分類Dev

パンダ:複数の列を比較してデータフレームをマージする

Related 関連記事

  1. 1

    複数の条件でのパンダデータフレームのマージ

  2. 2

    複数の条件でのパンダデータフレームのマージ(python / pandas)

  3. 3

    パンダ-複数の列で条件付きでデータフレームをマージします

  4. 4

    パンダの複数のID列で複数のデータフレームをマージする

  5. 5

    自己マージ後のパンダデータフレームでの重複

  6. 6

    複数のデータフレームパンダをマージする

  7. 7

    複数のパンダデータフレームをマージする

  8. 8

    複数の列で2つのパンダデータフレームをマージする

  9. 9

    パンダデータフレーム内の複数のif else条件の実装

  10. 10

    パンダのデータフレームの条件付きマージ

  11. 11

    複数の条件でパンダのデータフレームをフィルタリングする

  12. 12

    パンダ:複数の列の2つのデータフレームをマージ(結合)

  13. 13

    Python Pandas:複数の条件でデータフレームをマージする

  14. 14

    複数の条件があるパンダデータフレームnumpy

  15. 15

    パンダのデータフレームは、複数の列の条件で値を置き換えます

  16. 16

    パンダのデータフレームは、特定の条件で複数の行を比較します

  17. 17

    パンダデータフレーム内の1つに複数の行をマージ?

  18. 18

    パンダ:複数の集計列を作成し、複数のデータフレームをエレガントな方法でマージします

  19. 19

    パンダデータフレームの複数の最小値

  20. 20

    複数のパンダデータフレームの共通部分

  21. 21

    パンダデータフレームの複数の条件で行をドロップする

  22. 22

    複数の条件下で2つのパンダデータフレームを左結合する

  23. 23

    パンダ:データフレームのマージと比較

  24. 24

    パンダデータフレームの動的マージ

  25. 25

    Python:パンダは複数のデータフレームをマージします

  26. 26

    パンダを使用して複数のデータフレームを1つにマージします

  27. 27

    パンダを使用して複数のデータフレームを1つにマージします

  28. 28

    パンダ:複数のデータフレームをマージし、列名を制御しますか?

  29. 29

    パンダ:複数の列を比較してデータフレームをマージする

ホットタグ

アーカイブ