PandasはDataFrameに値を割り当てます

2614 ワード

Pandas設定値
  • 関連コード
  • データの作成
    私たちは自分のニーズに応じてpandasでデータの中の値を変更したり、空の列を追加したり、数値のある列を追加したりすることができます.
    まず6 X 4のマトリックスデータを確立した.
    dates = pd.date_range('20130101', periods=6)
    df = pd.DataFrame(np.arange(24).reshape((6,4)),index=dates, columns=['A','B','C','D'])
    
    """
                 A   B   C   D
    2013-01-01   0   1   2   3
    2013-01-02   4   5   6   7
    2013-01-03   8   9  10  11
    2013-01-04  12  13  14  15
    2013-01-05  16  17  18  19
    2013-01-06  20  21  22  23
    """
    

    位置に応じてlocとilocを設定
    インデックスまたはラベルを使用して、値を変更する必要がある場所を決定できます.
    df.iloc[2,2] = 1111
    df.loc['20130101','B'] = 2222
    
    """
                 A     B     C   D
    2013-01-01   0  2222     2   3
    2013-01-02   4     5     6   7
    2013-01-03   8     9  1111  11
    2013-01-04  12    13    14  15
    2013-01-05  16    17    18  19
    2013-01-06  20    21    22  23
    """
    

    条件に基づいて設定
    現在の判断条件がそうである場合、Bの数を変更したいが、変更位置はAに依存する.Aが4より大きい位置について.変更Bの対応する位置の数は0である.
    df.B[df.A>4] = 0
    """
                    A     B     C   D
    2013-01-01   0  2222     2   3
    2013-01-02   4     5     6   7
    2013-01-03   8     0  1111  11
    2013-01-04  12     0    14  15
    2013-01-05  16     0    18  19
    2013-01-06  20     0    22  23 
    """
    

    行または列で設定
    列全体をバッチ処理し、「F」の列を加え、F列をNaN列に変更すると、以下のようになります.
    df['F'] = np.nan
    """
                 A     B     C   D   F
    2013-01-01   0  2222     2   3 NaN
    2013-01-02   4     5     6   7 NaN
    2013-01-03   8     0  1111  11 NaN
    2013-01-04  12     0    14  15 NaN
    2013-01-05  16     0    18  19 NaN
    2013-01-06  20     0    22  23 NaN
    """
    

    データの追加
    上記の方法でもSeriesシーケンスを加えることができます(ただし、長さは揃えなければなりません).
    df['E'] = pd.Series([1,2,3,4,5,6], index=pd.date_range('20130101',periods=6)) 
    """
                 A     B     C   D   F  E
    2013-01-01   0  2222     2   3 NaN  1
    2013-01-02   4     5     6   7 NaN  2
    2013-01-03   8     0  1111  11 NaN  3
    2013-01-04  12     0    14  15 NaN  4
    2013-01-05  16     0    18  19 NaN  5
    2013-01-06  20     0    22  23 NaN  6
    """
    

    特定の列の特定の値の変更
    a = [['a','1.2','4.2'],['a','70','0.03'],['b','5','0']]
    df = pd.DataFrame(a,columns=['col1','col2','col3'])
    df.col1[df.col1 =='a'] = 'm'
    print(df)