为什么dataframe对象转换为TimeSeries对象

时间:2015-12-14 12:45:36

标签: python pandas dataframe

让我们说我有一个数据框。有多个列(例如'A','B') 使用以下代码,我想基于一列创建一个新的数据框:

In [5] print type (df2)<class 'pandas.core.series.Series'>

然而,当我这样做时,数据框突然转换为TimeSeries

Facebook SDK v4.x

非常奇怪......任何人都可以向我解释为什么会发生这种情况......?

2 个答案:

答案 0 :(得分:2)

df1['A']会返回一个系列。 df1[['A']]会返回一个DataFrame。

切片的行为会有所不同,具体取决于您在两者之间传递的对象类型 括号中。

如果使用字符串对DataFrame df进行切片,则DataFrame会尝试查找 df.columns中的字符串,如果成功,则将列作为系列返回。

如果使用列表(字符串)对df进行切片,则DataFrame会尝试查找 df.columns中的每个字符串,如果成功,则将列作为a返回 新的DataFrame。如果列表恰好只包含一个字符串,那么你得到一个 DataFrame只有一列。

分配df['B'] = xyz调用中使用切片时 df.__setitem__('B', xyz)。 DataFrame的__setitem__已实施 修改df本身。赋值不会返回值,但会进行修改 df到位。

表达式中使用切片时,df[xyz]调用 df.__getitem__(xyz)。 DataFrame的__getitem__方法返回不同的方法 对象类型取决于xyz的类型。

答案 1 :(得分:1)

是的,df1['A']是一个熊猫系列,因此将它分配给df2会产生一个熊猫系列。

pandas.DataFrame(df.A) - 将创建一个新的pandas数据帧