JopaBoga Asked:2024-01-14 04:58:14 +0800 CST2024-01-14 04:58:14 +0800 CST 2024-01-14 04:58:14 +0800 CST python 中的双括号 772 这是代码 df = google.history(period='1d', interval="1m") # pandas DataFrame df = df[['Low']] df.head() 我是否正确理解倒数第二行相当于df = df['Low'],只是它重新保存变量而不是将其用作指针?或者['Low']字典中有一个键,我们将其保存在列表中? python 2 个回答 Voted Best Answer Alexey Trukhanov 2024-01-14T05:37:24+08:002024-01-14T05:37:24+08:00 如果代码中的对象df是字典 ( dict),则表达式 df = df[['Low']] 会违反语法并且你会得到一个异常 类型错误:不可散列的类型:“列表” 因为解释器会认为你正在尝试使用列表['Low']作为字典键,而被修改的值不能是字典键。 在您的情况下,我们正在讨论库对象pandas,我们不会收到dict和类型的对象list。 在您的代码中,df它代表一个库对象pandas pandas.Dataframe,因此表达式: df = df[['Low']] 创建一个相同类型的对象pandas.Dataframe(准确地说class 'pandas.core.frame.DataFrame')。也就是说,一张表有一个名为 的列Low。 虽然表达 df = df['Low'] 将创建一个pandas.Series( class 'pandas.core.series.Series') 类型的对象,即只有一列。 在这两种情况下,原始的df都会被覆盖。 overxffff 2024-01-14T05:38:40+08:002024-01-14T05:38:40+08:00 df = google.history(period='1d', interval="1m") # pandas DataFrame # Здесь df получает, скорее всего, датафрейм df = df[['Low']] # Здесь df Стирает все что полученно выше и при сваивает один столбик 'Low' df.head()
如果代码中的对象
df
是字典 (dict
),则表达式会违反语法并且你会得到一个异常
因为解释器会认为你正在尝试使用列表
['Low']
作为字典键,而被修改的值不能是字典键。在您的情况下,我们正在讨论库对象
pandas
,我们不会收到dict
和类型的对象list
。在您的代码中,
df
它代表一个库对象pandas
pandas.Dataframe
,因此表达式:创建一个相同类型的对象
pandas.Dataframe
(准确地说class 'pandas.core.frame.DataFrame'
)。也就是说,一张表有一个名为 的列Low
。虽然表达
将创建一个
pandas.Series
(class 'pandas.core.series.Series'
) 类型的对象,即只有一列。在这两种情况下,原始的
df
都会被覆盖。