2つのパンダDataFrame間の条件に基づいて、新しい列に値を割り当てます

ディオゴペッサーニャ

2つのデータフレームがあるとしましょう。df1には4つの列が含まれています。「NAME」列には、都市の名前(A、B、C)が含まれています。他の各列は、その都市に住む人々の数を含む年(y0、y1、y2)を表します。

np.random.seed(seed=34)
name = ['A','B','C']
y0 = np.random.random_integers(1,high=40, size=3)
y1 = np.random.random_integers(1,high=40, size=3)
y2 = np.random.random_integers(1,high=40, size=3)
df = pd.DataFrame(data={'NAME' : name, 'y0' : y0, 'y1' : y1, 'y2' : y2})
df

   NAME y0  y1  y2
0   A   34  36  15
1   B   22  6   30
2   C   5   12  19

df2には3つの列が含まれています。「NAME」列には、都市の名前が含まれています。「y」列には年の値(y0、y1、y2)が含まれ、「i」列にはインターネットにアクセスできる人の数が含まれます。

y = ['y0', 'y1', 'y2',  'y0', 'y1', 'y2',  'y0', 'y1', 'y2']
name2 = ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C']
i = [15, 6, 12, 18, 4, 20, 3, 8, 2]
df2 = pd.DataFrame(data={'NAME':name2, 'y':y, 'i':i})
df2

   NAME y   i
0   A   y0  15
1   A   y1  6
2   A   y2  23
3   B   y0  18
4   B   y1  17
5   B   y2  20
6   C   y0  3
7   C   y1  24
8   C   y2  2

df2 ['NAME']の値がdf1 ['NAME']に等しく、df2 ['y']がdf1に等しいという条件で、df1の値を含む列をdf2に作成する必要があります。列、次の結果を取得するために:


   NAME y   i   v
0   A   y0  15  34
1   A   y1  6   36
2   A   y2  12  15
3   B   y0  18  22
4   B   y1  4   6
5   B   y2  20  30
6   C   y0  3   5
7   C   y1  8   12
8   C   y2  2   19

都市名がdfに表示される回数は一定ではありません。前もって感謝します。

抑圧層

値が一致するため、これを行うことができます。

df2['v'] = df.melt(col_level=0, id_vars='NAME').sort_values(by='NAME').reset_index(drop=True)['value'] 

出力:

  NAME   y   i   v
0    A  y0  15  34
1    A  y1   6  36
2    A  y2  12  15
3    B  y0  18  22
4    B  y1   4   6
5    B  y2  20  30
6    C  y0   3   5
7    C  y1   8  12
8    C  y2   2  19

またはcombinefirstで

df3 = df.melt(col_level=0, id_vars='NAME').sort_values(by='NAME').reset_index(drop=True)  
df3 = df3.rename(columns={'variable':'y'})                                                                                         
df3 = df2.combine_first(df3)
df3['value'] = df3['value'].astype(int)


  NAME   i  value   y
0    A  15     34  y0
1    A   6     36  y1
2    A  12     15  y2
3    B  18     22  y0
4    B   4      6  y1
5    B  20     30  y2
6    C   3      5  y0
7    C   8     12  y1
8    C   2     19  y2

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

別の列に基づいてパンダ列に値を割り当てます

分類Dev

値の配列の条件に基づいてパンダに値を割り当てます

分類Dev

パンダの他の列の値に基づいて新しい列に値を割り当てる

分類Dev

パンダの3番目の列に基づいて2つの列の間の値を保持します

分類Dev

パンダ-複数の条件に基づいて空の列に値を割り当てます

分類Dev

パンダ-複数の条件に基づいて空の列に値を割り当てます

分類Dev

2つ以上の列の条件に基づいて、パンダの列の値を変更します

分類Dev

複数の列の値と同じ条件に基づいて、パンダに新しい列を作成します

分類Dev

パンダで2つの新しい列を作成し、日付に基づいて変数を割り当てます

分類Dev

パンダ:2つの異なる列の条件に基づいて値の価格を選択します

分類Dev

別の列の値に基づいて新しい列を割り当てます

分類Dev

パンダの2つの列間の一致に基づいて値を検索します

分類Dev

パンダは、他の列の条件と値に基づいて新しい列を作成します

分類Dev

パンダは2つの条件に基づいて列の値を設定します

分類Dev

条件に基づいて3つの値をpandasdf列に割り当てます

分類Dev

他の2つの列に基づいて条件付きで新しいパンダDF列を作成する方法

分類Dev

パンダ:2つの列の値に基づいて新しい列を作成するには

分類Dev

パンダの他の2つの列の条件に基づいてを使用して列を作成します

分類Dev

Rの複数の条件に基づいて新しい列の値を割り当てます

分類Dev

パンダの2つの値に基づいて新しい日時の値を作成します

分類Dev

条件に基づいて2つのリストからパンダに新しい列を追加する方法

分類Dev

パンダは行の値(条件)に基づいて新しい列を作成します

分類Dev

パンダは、他の2つの列の分割に基づいて新しい列を作成します

分類Dev

パンダの条件に基づいて列の値を交換します

分類Dev

Rの2つの列に基づいて特定の値を割り当てます

分類Dev

新しいパンダ列のパーセンタイルに複数の条件値を割り当てます

分類Dev

別の列の変数に基づいて、パンダの値を列に割り当てます

分類Dev

パンダの条件に基づいて、列名のリストを新しい列として返します

分類Dev

条件に基づいてパンダシリーズの値を割り当てますか?

Related 関連記事

  1. 1

    別の列に基づいてパンダ列に値を割り当てます

  2. 2

    値の配列の条件に基づいてパンダに値を割り当てます

  3. 3

    パンダの他の列の値に基づいて新しい列に値を割り当てる

  4. 4

    パンダの3番目の列に基づいて2つの列の間の値を保持します

  5. 5

    パンダ-複数の条件に基づいて空の列に値を割り当てます

  6. 6

    パンダ-複数の条件に基づいて空の列に値を割り当てます

  7. 7

    2つ以上の列の条件に基づいて、パンダの列の値を変更します

  8. 8

    複数の列の値と同じ条件に基づいて、パンダに新しい列を作成します

  9. 9

    パンダで2つの新しい列を作成し、日付に基づいて変数を割り当てます

  10. 10

    パンダ:2つの異なる列の条件に基づいて値の価格を選択します

  11. 11

    別の列の値に基づいて新しい列を割り当てます

  12. 12

    パンダの2つの列間の一致に基づいて値を検索します

  13. 13

    パンダは、他の列の条件と値に基づいて新しい列を作成します

  14. 14

    パンダは2つの条件に基づいて列の値を設定します

  15. 15

    条件に基づいて3つの値をpandasdf列に割り当てます

  16. 16

    他の2つの列に基づいて条件付きで新しいパンダDF列を作成する方法

  17. 17

    パンダ:2つの列の値に基づいて新しい列を作成するには

  18. 18

    パンダの他の2つの列の条件に基づいてを使用して列を作成します

  19. 19

    Rの複数の条件に基づいて新しい列の値を割り当てます

  20. 20

    パンダの2つの値に基づいて新しい日時の値を作成します

  21. 21

    条件に基づいて2つのリストからパンダに新しい列を追加する方法

  22. 22

    パンダは行の値(条件)に基づいて新しい列を作成します

  23. 23

    パンダは、他の2つの列の分割に基づいて新しい列を作成します

  24. 24

    パンダの条件に基づいて列の値を交換します

  25. 25

    Rの2つの列に基づいて特定の値を割り当てます

  26. 26

    新しいパンダ列のパーセンタイルに複数の条件値を割り当てます

  27. 27

    別の列の変数に基づいて、パンダの値を列に割り当てます

  28. 28

    パンダの条件に基づいて、列名のリストを新しい列として返します

  29. 29

    条件に基づいてパンダシリーズの値を割り当てますか?

ホットタグ

アーカイブ