我只是在问自己我知道调用df[column_name]会显示一个Series,因为DataFrame是由不同的数组构建的。但是,为什么调用dfcolumn_name(column_name只有一个列)会返回DataFrame而不是Series?我不确定是否理解Pandas是如何构建的逻辑
谢谢:)
我试图向我的学生解释为什么调用一个元素的列表会显示一个dataframe而不是一个Series,但没有管理
我只是在问自己我知道调用df[column_name]会显示一个Series,因为DataFrame是由不同的数组构建的。但是,为什么调用dfcolumn_name(column_name只有一个列)会返回DataFrame而不是Series?我不确定是否理解Pandas是如何构建的逻辑
谢谢:)
我试图向我的学生解释为什么调用一个元素的列表会显示一个dataframe而不是一个Series,但没有管理
2条答案
按热度按时间v8wbuo2f1#
如果通过列表选择
DataFrame
的列,则通过嵌套列表的子集获取DataFrame(double )。所以如果传递一个元素列表,得到单列
DataFrame
。对于Series只需要在一组方括号内传递单个列名,它显然返回Series。
但是如果重复的列名改为
Series
,则获取DataFrame:falq053o2#
这可能是因为当你给予单个column_name作为字符串时,它会根据搜索关键字column_name执行选择并返回单个值。但是当你提供包含在列表中的相同column_name时,它会试图获取列表中的所有关键字,在这种情况下,它是一个。因此导致了一个 Dataframe 。
我猜他们使用一些标准逻辑来返回dataframe,如果提供了列表,而不管列表的长度。
进口Pandas当PD
df = pd.DataFrame(columns=[“a”,“B”,“c”],data=[[1,4,7],[2,5,8],[3,6,9]])
column_name =“a”
print(type(df[column_name]))
print(type(dfcolumn_name))
output:〈class 'pandas.core.series. Series'〉〈class 'pandas.core.frame. DataFrame'〉