Set value for particular cell in pandas DataFrame with iloc

I have a question similar to this and this. The difference is that I have to select row by position, as I do not know the index.

I want to do something like df.iloc[0, 'COL_NAME'] = x, but iloc does not allow this kind of access. If I do df.iloc[0]['COL_NAME] = x the warning about chained indexing appears.

For mixed position and index, use .ix. BUT you need to make sure that your index is not of integer, otherwise it will cause confusions.

    df.ix[0, 'COL_NAME'] = x

Update:

Alternatively, try

    df.iloc[0, df.columns.get_loc('COL_NAME')] = x

Example:

    import pandas as pd
    import numpy as np

    # your data
    # ========================
    np.random.seed(0)
    df = pd.DataFrame(np.random.randn(10, 2), columns=['col1', 'col2'], index=np.random.randint(1,100,10)).sort_index()

    print(df)


          col1    col2
    10  1.7641  0.4002
    24  0.1440  1.4543
    29  0.3131 -0.8541
    32  0.9501 -0.1514
    33  1.8676 -0.9773
    36  0.7610  0.1217
    56  1.4941 -0.2052
    58  0.9787  2.2409
    75 -0.1032  0.4106
    76  0.4439  0.3337

    # .iloc with get_loc
    # ===================================
    df.iloc[0, df.columns.get_loc('col2')] = 100

    df

          col1      col2
    10  1.7641  100.0000
    24  0.1440    1.4543
    29  0.3131   -0.8541
    32  0.9501   -0.1514
    33  1.8676   -0.9773
    36  0.7610    0.1217
    56  1.4941   -0.2052
    58  0.9787    2.2409
    75 -0.1032    0.4106
    76  0.4439    0.3337

From: stackoverflow.com/q/31569384