Pandas 具有单行的数据帧是否具有数据帧的所有属性?

Pandas 具有单行的数据帧是否具有数据帧的所有属性?,pandas,dataframe,Pandas,Dataframe,我正在从一个大的数据帧切片一个数据帧,而子数据帧只有一行。具有单行的子df是否具有与父df相同的属性 import numpy as np import pandas as pd dates = pd.date_range('20130101',periods=6) df = pd.DataFrame(np.random.randn(6,2),index=dates,columns=['col1','col2']) df1=df.iloc[1] type(df1) >> pandas

我正在从一个大的数据帧切片一个数据帧,而子数据帧只有一行。具有单行的子df是否具有与父df相同的属性

import numpy as np
import pandas as pd
dates = pd.date_range('20130101',periods=6)
df = pd.DataFrame(np.random.randn(6,2),index=dates,columns=['col1','col2'])
df1=df.iloc[1]
type(df1)
>> pandas.core.series.Series
df1.columns
>>'Series' object has no attribute 'columns'

是否有一种方法可以在pd.series上使用pd.DataFrame的所有属性?

您可能正在寻找的是一个具有一行的数据帧:

>>> pd.DataFrame(df1).T                    # T -> transpose

                col1      col2
2013-01-02 -0.428913  1.265936
当您执行
df.iloc[1]
时,pandas会将其转换为一个一维的系列,而列将成为索引。您仍然可以执行
df1['col1']
,但不能执行
df.columns
,因为序列基本上是一列,因此旧列现在是新索引

因此,您可以像这样返回前面的列:

>>> df1.index.tolist()

['col1', 'col2']

这让我很困惑。我还希望
df.iloc[1]
是一个只有一行的数据帧,但pandas的默认行为始终是自动将任何一维数据帧片段(无论是行还是列)转换为一个系列。这对一行来说很自然,但对一列来说就不那么自然了(因为列变成了索引),但一旦你了解了发生了什么,这就不是问题了。

我试过了,但不起作用,我的问题是有一种方法可以将df的所有属性都用到pd.series.As,一行的所有df都会得到pd的属性。默认情况下为系列。您也可以使用此选项:
df1.iloc[1]。to_frame().T