0

我有一个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

哪一个有两列?这将使我的应用程序失败,该应用程序只需要第一列,但 Pandas 给出了第一列和第四列!它是一个错误还是故意设计的?如何绕过这个问题?

我的熊猫版本是 0.8.1 。

4

1 回答 1

2

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

但要回答您的问题,这将只返回 1 个“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
于 2013-01-15T10:05:01.687 回答