1. ホーム
  2. python

[解決済み] 列へのアクセスに角括弧とドットを使用することの違いは何ですか?

2023-07-27 01:51:07

質問

以下のいずれの場合も

import pandas

d = {'col1': 2, 'col2': 2.5}
df = pandas.DataFrame(data=d, index=[0])

print(df['col2'])
print(df.col2)

どちらの方法もカラムにインデックスを付けることができ、同じ結果を得ることができますが、両者に違いはあるのでしょうか?

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

ドット記法("dot notation")、つまり df.col2 属性のアクセス であり、便宜上公開されているものです。

Series のインデックス、DataFrame のカラム、Panel のアイテムには、属性として直接アクセスすることができます。

df['col2'] も同じです。 pd.Series を返します。

属性アクセスに関するいくつかの注意点。

  • にカラムを追加することはできません。 df.new_col = x は動作しません。さらに悪いことに、それは 静かに 実際にはカラムではなく新しい属性を作成します - 猿真似です)
  • カラム名にスペースがある場合、またはカラム名が整数の場合は動作しません。