1. ホーム
  2. python

pandas DataFrameの特定のセルに対してilocで値を設定する

2023-10-03 02:45:23

質問

私は以下のような質問をしています。 この この . 違いは、私はインデックスを知らないので、私は位置によって行を選択する必要があることです。

私は次のようなことをしたい df.iloc[0, 'COL_NAME'] = x のようにしたいのですが、ilocはこのようなアクセスを許可していません。もし私が df.iloc[0]['COL_NAME'] = x を実行すると、連鎖したインデックスに関する警告が表示されます。

どのように解決するのですか?

位置とインデックスが混在する場合は .ix . しかし、インデックスが整数でないことを確認する必要があり、そうでない場合は混乱の原因となります。

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

更新しました。

または、以下をお試しください。

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

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