当您在 pd.DataFrame 中传递一个系列时,括号(而不是没有括号)是什么意思?

What do brackets (instead of no brackets) mean when you pass a series in pd.DataFrame?

也许这是一个非常基本的语法问题,但我一直没能找到答案:

为什么,当你采用一个基本系列 (series_sample_name) 并编写 df_sample_name = pd.DataFrame(series_sample_name) 时,你得到的输出与该系列基本相同但是在 df 形式中,而如果你写 pd.DataFrame([series_sample_name]) 你会得到水平显示的系列值并且索引标签变成列?我不知道在只传递一个对象时向单个对象添加单个括号有意义。

好问题。当您将 Python 中的任何内容括在方括号中时,它将被解释为列表。正如您在下面看到的,一个是 pandas 系列,它 inherits 来自 class 的属性。现在,列表是不同的 class 并继承不同的属性。

d = {'a': 1, 'b': 2, 'c': 3}
ser = pd.Series(data=d, index=['a', 'b', 'c'])
print(type(ser))
print(type([ser]))

输出:

<class 'pandas.core.series.Series'>
<class 'list'>