Python中[]和[]之间的差异

2024-05-29 06:35:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在上一门关于Coursera的课程,题目是“用Python进行数据分析”。我是Python新手。我有一些C和MATLAB的经验。这就是为什么除了一件事,我没有遇到那么多问题

首先请看下面的代码

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中,方括号用于列表,嵌套列表是可能的。但它似乎不是一个嵌套列表。你能区分它们吗


Tags: csvpathinimportclouddf列表data
3条回答

一个对数据帧进行切片并返回子数据帧,另一个只选择一列并将其作为Series给出:

  • 如果将字符串列表传递给方括号[['a', 'c']],将获得只包含所请求的列的DataFrame

  • 如果将字符串传递给方括号['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

当您想要使用或返回数据帧的单个列,即返回系列时,请使用df['xyz']。如果您想要返回或使用多个列,您可以使用df[['xyz','abc','ijk']]返回另一个带有指定列的数据帧

注意

df[['xyz']] this is allowed, but df['xyz','abc','ijk'] this is not allowed.

df1=pd.DataFrame({"Col":[1,2,3],"Row":[2,3,4],"value":[6,5,7],"ree":[0,0,0]})
df1


  Col Row  value ree
0   1   2   6   0
1   2   3   5   0
2   3   4   7   0

df1['Col']
0    1
1    2     # Series object
2    3
Name: Col, dtype: int64

df1[['Col']]
    Col
0   1
1   2      # DataFrame object
2   3

df1[["Col","Row","value"]]
    Col Row value
0   1   2   6
1   2   3   5         # DataFrame object
2   3   4   7

在您的情况下X['h___...']也可以使用,因为只有一列

[[]]通常用于传递多个列以从数据帧检索。另一个关键区别是它返回一个DataFrame

[]通常用于传递单个列以从数据帧检索。另一个关键区别是它返回一个Series

这是索引数据帧时的关键区别之一。两者都使用不同的返回类型执行相同的预期操作

相关问题 更多 >

    热门问题