Python 为什么dataframe对象转换为TimeSeries对象
假设我有一个数据帧。具有多列(例如“A”、“B”) 使用以下代码,我希望仅基于一列创建一个新的数据帧:Python 为什么dataframe对象转换为TimeSeries对象,python,pandas,dataframe,Python,Pandas,Dataframe,假设我有一个数据帧。具有多列(例如“A”、“B”) 使用以下代码,我希望仅基于一列创建一个新的数据帧: df2 = df1['A'] 但是,当我这样做时,数据帧会突然转换为TimeSeries In [5] print type (df2)<class 'pandas.core.series.Series'> [5]打印类型(df2)中的 非常奇怪…有人能解释一下为什么会发生这种情况吗…?df1['A']返回一个序列df1[['A']]返回数据帧 切片的行为不同,具体取决于在两
df2 = df1['A']
但是,当我这样做时,数据帧会突然转换为TimeSeries
In [5] print type (df2)<class 'pandas.core.series.Series'>
[5]打印类型(df2)中的
非常奇怪…有人能解释一下为什么会发生这种情况吗…?
df1['A']
返回一个序列df1[['A']]
返回数据帧
切片的行为不同,具体取决于在两个对象之间传递的对象类型
括号
如果使用字符串分割数据帧,df
,数据帧将尝试查找
df.columns
中的字符串,如果成功,则将列作为序列返回
如果使用(字符串)列表对df进行切片,则数据帧将尝试查找
df.columns
中的每个字符串,如果成功,则返回列作为
新数据帧。如果列表恰好只包含一个字符串,则会得到一个
只有一列的数据帧
在赋值中使用切片时,
df['B']=xyz
调用
df.\uuuuu setitem\uuuuuz('B',xyz)
。数据帧的\uuuuu setitem\uuuuuu
实现为
修改df本身。赋值不返回值,但会修改
df
到位
在表达式中使用切片时,df[xyz]
调用
df.\uuuu getitem\uuuuz)
。数据帧的\uuu getitem\uu
方法返回一个不同的
对象的类型取决于
xyz
df1['A']
的类型返回一个序列df1[['A']]
返回数据帧
切片的行为不同,具体取决于在两个对象之间传递的对象类型
括号
如果使用字符串分割数据帧,df
,数据帧将尝试查找
df.columns
中的字符串,如果成功,则将列作为序列返回
如果使用(字符串)列表对df进行切片,则数据帧将尝试查找
df.columns
中的每个字符串,如果成功,则返回列作为
新数据帧。如果列表恰好只包含一个字符串,则会得到一个
只有一列的数据帧
在赋值中使用切片时,
df['B']=xyz
调用
df.\uuuuu setitem\uuuuuz('B',xyz)
。数据帧的\uuuuu setitem\uuuuuu
实现为
修改df本身。赋值不返回值,但会修改
df
到位
在表达式中使用切片时,df[xyz]
调用
df.\uuuu getitem\uuuuz)
。数据帧的\uuu getitem\uu
方法返回一个不同的
对象类型取决于
xyz
是,df1['A']
是熊猫系列,因此将其指定给df2将产生熊猫系列
pandas.DataFrame(df.A)
-将创建一个新的pandas数据帧是的,df1['A']
是一个pandas系列,因此将其分配给df2将产生pandas系列
pandas.DataFrame(df.A)
-将创建一个新的pandas数据帧aah,好的。我一直在使用语法'df2['B']'=df2['B']
在已经存在的数据帧中分配一个新列。在该场景中,数据帧仍然是一个数据帧。但是,当使用上述语法将值分配给新变量时,它会自动转换为一个系列…当在分配中使用切片时,df2['B']=xyz
调用df2.\uu setitem_uu('B',xyz)
。数据帧的\uuuu setitem\uuuu
是用来修改df2
本身的。赋值不会返回值,但会就地修改df2
。在表达式中使用切片时,df2[xyz]
调用df2.\uu getitem\uuuuuz(xyz)
。DataFrame的\uuu getitem\uuu
方法根据xyz
@unutbu的类型返回不同类型的对象,切片的解释非常好。这将是值得添加到答案中的啊,好的。我一直在使用语法'df2['B']'=df2['B']
在已经存在的数据帧中分配一个新列。在该场景中,数据帧仍然是一个数据帧。但是,当使用上述语法将值分配给新变量时,它会自动转换为一个系列…当在分配中使用切片时,df2['B']=xyz
调用df2.\uu setitem_uu('B',xyz)
。数据帧的\uuuu setitem\uuuu
是用来修改df2
本身的。赋值不会返回值,但会就地修改df2
。在表达式中使用切片时,df2[xyz]
调用df2.\uu getitem\uuuuuz(xyz)
。DataFrame的\uuu getitem\uuu
方法根据xyz
@unutbu的类型返回不同类型的对象,切片的解释非常好。这将是值得补充的答案