Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么dataframe对象转换为TimeSeries对象_Python_Pandas_Dataframe - Fatal编程技术网

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

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']]返回数据帧 切片的行为不同,具体取决于在两

假设我有一个数据帧。具有多列(例如“A”、“B”) 使用以下代码,我希望仅基于一列创建一个新的数据帧:

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的类型返回不同类型的对象,切片的解释非常好。这将是值得补充的答案