我有一个数据框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。
答案 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