如何为Pandas Series命名

13

我有一个 DataFrame 叫做 symbolData,里面的数据如下:

              Open      High       Low   Close      Volume  Ex-Dividend  Split Ratio   Adj. Open   Adj. High    Adj. Low  Adj. Close  Adj. Volume
Date
1980-12-12   28.75   28.8700   28.7500   28.75   2093900.0          0.0          1.0    0.424421    0.426193    0.424421    0.424421  117258400.0

当我只获取包含Adj Close列的series时,我想给它一个名称:

当我只取得Adj Close这一列的series数据时,我希望能够给这份数据起个名称:

adjClose = symbolData.ix[:,10]

现在,上面的内容看起来像这样:

Date
1980-12-12      0.424421

我希望它看起来像这样

                AlgoClose
Date                   
1980-12-12      0.424421
4个回答

14

这将完成任务:

adjClose = symbolData.ix[:,10].rename("AlgoClose")
adjClose =pd.DataFrame(adjClose)

5

在使用ix定义你的系列后,你可以使用以下方法设置它的名称:

adjClose.name = 'adjClose'

或者,您可以在定义系列时保留原始列名,如下所示:

adjClose = symbolData['Adj. Close']

这个“命名系列”不会按照你的要求显示,它将以如下方式显示:

Date
1980-12-12      0.424421
Name: adjclose, dtype: float64

如果更重要的是按照您的意愿显示,而不是保持连续性,则将其转换为 Miriam 答案中的单列 DataFrame


3
你可以重命名Series,然后使用.to_frame将其转换为数据框。此外,最好使用iloc而不是ix,因为ix将来会被弃用。
df.iloc[:,10].rename('AlgoClose').to_frame()
Out[20]: 
            AlgoClose
Date                 
1980-12-12   0.424421

1
你也可以使用带有 name 参数的 to_frame 方法:
symbolData.ix[:,10].to_frame(name='AlgoClose')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接