重复列Pandas数据帧切片问题

时间:2013-01-15 05:55:04

标签: pandas

我有一个数据框df,它有重复的列:(我需要重复的列数据框,它将作为参数传递给matplotlib进行绘图,因此列名和内容可能相同或不同)

>>> df
                                         PE     RT    Ttl_mkv      PE
STK_ID    RPT_Date                                  
11_STK79  20130115  41.932  2.744   3629.155  41.932
21_STK58  20130115  14.223  0.048  30302.324  14.223
22_STK229 20130115  22.436  0.350  15968.313  22.436
23_STK34  20130115 -63.252  0.663   4168.189 -63.252

我可以通过以下方式获得第二列:df[df.columns[1]]

>>> df[df.columns[1]]
STK_ID     RPT_Date
11_STK79   20130115    2.744
21_STK58   20130115    0.048
22_STK229  20130115    0.350
23_STK34   20130115    0.663

但如果我想通过df[df.columns[0]]获取第一列,则会给出:

>>> df[df.columns[0]]
                                   PE      PE
STK_ID    RPT_Date                
11_STK79  20130115  41.932  41.932
21_STK58  20130115  14.223  14.223
22_STK229 20130115  22.436  22.436
23_STK34  20130115 -63.252 -63.252

其中有两列。这将使我的应用程序关闭应用程序只需要第一列,但熊猫给第一列和第四栏!它是一个bug还是故意设计的?如何绕过这个问题?

我的熊猫版本是0.8.1。

1 个答案:

答案 0 :(得分:2)

我真的不明白为什么你需要两个同名的列,避免它可能是最好的。

但是要回答你的问题,这只会返回'PE'列中的一个:

df.T.drop_duplicates().T.PE

STK_ID     RPT_Date
11_STK79   20130115    41.932
21_STK58   20130115    14.223
22_STK229  20130115    22.436
23_STK34   20130115   -63.252
Name: PE

或:

df.T.ix[0].T