将数据框列复制到另一个没有列标题

时间:2016-05-06 12:38:19

标签: python-3.x pandas

我有一个dataframe stockData(按日期索引):

stockData             BBG.XLON.BTA.S_LAST  BBG.XLON.BTA.S_VOLUME  BBG.XLON.BTA.S_MKTCAP  \
date                                                                            
2008-02-04               262.00               23397414             20875.7353   
2008-02-05               257.25               35213970             20497.5582   
2008-02-06               262.75               41323308             20935.7956   
2008-02-07               237.00              123276113             18884.0477   
2008-02-08               231.00               76456078             18389.9269 

有人可以让我知道如何将其中一列复制到另一个没有列名的新数据帧。例如,如果我想在按日期索引的新数据框(new_Df)中获取BBG.XLON.BT.A_LAST的数据,我希望看到:

new_Df              

2008-02-04               262.00                 
2008-02-05               257.25                 
2008-02-06               262.75                 
2008-02-07               237.00                 
2008-02-08               231.00   

请注意没有列名。

非常感谢

1 个答案:

答案 0 :(得分:0)

DataFrame的每一列都有一个名称。但是,您可以将该名称设置为空字符串:

In [45]: df = pd.DataFrame(np.random.randint(10, size=(5,3)), columns=list('ABC')); df.columns.name = 'stockdata'

In [55]: df[['A']].rename(columns={'A':''})
Out[55]: 
stockdata   
0          5
1          1
2          5
3          4
4          5

要同时删除列索引的名称stockdata,请将df.columns.name重新分配给None

In [56]: df.columns.name = None; df[['A']].rename(columns={'A':''})
Out[56]: 

0  5
1  1
2  5
3  4
4  5

要将此列复制到新的DataFrame,只需将其指定给newdf['']

即可
In [57]: newdf = pd.DataFrame()

In [58]: newdf[''] = df['A']

In [59]: newdf
Out[59]: 

0  5
1  1
2  5
3  4
4  5

或者,更简洁,

In [60]: newdf = pd.DataFrame({'': df['A']})