1. ホーム
  2. python

[解決済み] Pythonの[]と[[]]の違いについて

2022-02-15 16:23:27

質問

Courseraで「Data Analysis with Python"」というタイトルのコースを受講しています。Pythonは初めてです。C言語とMATLABの経験はあります。そのため、1つのことを除いては、それほど問題に直面していません。

まず、以下のコードを見てください。

import pandas as pd

#path of data
path = 'https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-DA0101EN-SkillsNetwork/labs/Data%20files/automobileEDA.csv'
df = pd.read_csv(path)

from sklearn.linear_model import LinearRegression

lm = LinearRegression()

X = df[['highway-mpg']] #'highway-mpg' is a column in the dataframe
Y = df['price'] #'price' is a column in the dataframe

lm.fit(X,Y)

ここで X 二重の角括弧を使用しています。 [[]] で、その場合は Y 中古 [] . Pythonでは角括弧はリストアップに使われ、ネストしたリストアップが可能であることは知っています。しかし、ネストされたリストではないようです。区別していただけませんか?

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

データフレームをスライスしてサブデータフレームを返す方法と、1つのカラムだけを選択して Series :

  • 括弧に文字列のリストを渡すと [['a', 'c']] となります。 DataFrame このカラムには、質問されたカラムだけが含まれています。

  • 括弧に文字列を渡すと ['a'] となります。 だけ a Series これは、あなたがつけた名前に対応するものです。


df = pd.DataFrame([
    {'a': 1, 'b': 2, 'c': 4},
    {'a': 3, 'b': 4, 'c': 6},
])

print(df['a'])
# That is a Series
0    1
1    3
Name: a, dtype: int64
# -------------------------------------------
print(df[['a']])
# That is a DataFrame
   a
0  1
1  3
# -------------------------------------------
print(df[['a', 'c']])
# That is a DataFrame
   a  c
0  1  4
1  3  6