Python Pandas:删除列可保留索引,不需要的额外索引

时间:2019-07-14 01:07:08

标签: python pandas

因此,当我尝试通过使用drop或del删除熊猫数据框中的列时,即使没有归因于它们的值,它也会保留由于某种原因删除的索引。这真的弄乱了我的for循环。我也在使用泡菜,我可以尽可能地重现原始问题。

这是我的数据框:

import pandas as pd
import numpy as np
import pickle

abc=b'\x80\x03cpandas.core.frame\nDataFrame\nq\x00)\x81q\x01}q\x02(X\x05\x00\x00\x00_dataq\x03cpandas.core.internals.managers\nBlockManager\nq\x04)\x81q\x05(]q\x06(cpandas.core.indexes.base\n_new_Index\nq\x07cpandas.core.indexes.multi\nMultiIndex\nq\x08}q\t(X\x06\x00\x00\x00levelsq\n]q\x0b(h\x07cpandas.core.indexes.base\nIndex\nq\x0c}q\r(X\x04\x00\x00\x00dataq\x0ecnumpy.core.multiarray\n_reconstruct\nq\x0fcnumpy\nndarray\nq\x10K\x00\x85q\x11C\x01bq\x12\x87q\x13Rq\x14(K\x01K\x04\x85q\x15cnumpy\ndtype\nq\x16X\x02\x00\x00\x00O8q\x17K\x00K\x01\x87q\x18Rq\x19(K\x03X\x01\x00\x00\x00|q\x1aNNNJ\xff\xff\xff\xffJ\xff\xff\xff\xffK?tq\x1bb\x89]q\x1c(X\x03\x00\x00\x00AAPq\x1dX\x03\x00\x00\x00CVXq\x1eX\x03\x00\x00\x00XOKq\x1fX\x04\x00\x00\x00DWDPq etq!bX\x04\x00\x00\x00nameq"Nu\x86q#Rq$h\x07h\x0c}q%(h\x0eh\x0fh\x10K\x00\x85q&h\x12\x87q\'Rq((K\x01K\x06\x85q)h\x19\x89]q*(X\x04\x00\x00\x00Openq+X\x04\x00\x00\x00Highq,X\x03\x00\x00\x00Lowq-X\x05\x00\x00\x00Closeq.X\t\x00\x00\x00Adj Closeq/X\x06\x00\x00\x00Volumeq0etq1bh"Nu\x86q2Rq3eX\x05\x00\x00\x00codesq4]q5(h\x0fcpandas.core.indexes.frozen\nFrozenNDArray\nq6K\x00\x85q7h\x12\x87q8Rq9(K\x01K\x18\x85q:h\x16X\x02\x00\x00\x00i1q;K\x00K\x01\x87q<Rq=(K\x03h\x1aNNNJ\xff\xff\xff\xffJ\xff\xff\xff\xffK\x00tq>b\x89C\x18\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x03\x03\x03\x03\x03\x03q?tq@bh\x0fh6K\x00\x85qAh\x12\x87qBRqC(K\x01K\x18\x85qDh=\x89C\x18\x00\x01\x02\x03\x04\x05\x00\x01\x02\x03\x04\x05\x00\x01\x02\x03\x04\x05\x00\x01\x02\x03\x04\x05qEtqFbeX\t\x00\x00\x00sortorderqGNX\x05\x00\x00\x00namesqH]qI(NNeu\x86qJRqKcpandas.core.indexes.datetimes\n_new_DatetimeIndex\nqLcpandas.core.indexes.datetimes\nDatetimeIndex\nqM}qN(h\x0ecpandas.core.arrays.datetimes\nDatetimeArray\nqO)\x81qP}qQ(h\x03h\x0fh\x10K\x00\x85qRh\x12\x87qSRqT(K\x01K\x07\x85qUh\x16X\x02\x00\x00\x00M8qVK\x00K\x01\x87qWRqX(K\x04X\x01\x00\x00\x00<qYNNNJ\xff\xff\xff\xffJ\xff\xff\xff\xffK\x00}qZ(C\x02nsq[K\x01K\x01K\x01tq\\\x86q]tq^b\x89C8\x00\x08D+\xa5\xa4\xb0\x15\x000r\xb7v\xa5\xb0\x15\x00\xd0*\xe8\xbc\xa8\xb0\x15\x00p\xe3\x18\x03\xac\xb0\x15\x00\x98\x11\xa5\xd4\xac\xb0\x15\x00\xc0?1\xa6\xad\xb0\x15\x00\xe8m\xbdw\xae\xb0\x15q_tq`bX\x05\x00\x00\x00_freqqaNX\x06\x00\x00\x00_dtypeqbcpandas.core.dtypes.dtypes\nDatetimeTZDtype\nqc)\x81qd}qe(X\x04\x00\x00\x00unitqfX\x02\x00\x00\x00nsqgX\x02\x00\x00\x00tzqhcpytz\n_p\nqi(X\x10\x00\x00\x00America/New_YorkqjJ\xa0\xba\xff\xffK\x00X\x03\x00\x00\x00LMTqktqlRqmububh"X\x08\x00\x00\x00DatetimeqnhhhmX\x04\x00\x00\x00freqqoNu\x86qpRqqe]qr(h\x0fh\x10K\x00\x85qsh\x12\x87qtRqu(K\x01K\x17K\x07\x86qvh\x16X\x02\x00\x00\x00f8qwK\x00K\x01\x87qxRqy(K\x03hYNNNJ\xff\xff\xff\xffJ\xff\xff\xff\xffK\x00tqzb\x89B\x08\x05\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\xd7\xa3p=\n\x8fc@)\\\x8f\xc2\xf5\x90c@\xf6(\\\x8f\xc2\xa5c@\\\x8f\xc2\xf5(\xb4c@\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\xecQ\xb8\x1e\x85\x9bc@\x1f\x85\xebQ\xb8\xa6c@\xf6(\\\x8f\xc2\xb5c@\xd7\xa3p=\n\xc7c@\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x14\xaeG\xe1z|c@\xecQ\xb8\x1e\x85\x8bc@R\xb8\x1e\x85\xeb\xa1c@\\\x8f\xc2\xf5(\xb4c@\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\n\xd7\xa3p=\x92c@\x85\xebQ\xb8\x1e\xa5c@\xf6(\\\x8f\xc2\xb5c@{\x14\xaeG\xe1\xc2c@\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\n\xd7\xa3p=\x92c@\x85\xebQ\xb8\x1e\xa5c@\xf6(\\\x8f\xc2\xb5c@{\x14\xaeG\xe1\xc2c@\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x86\xd3@\x00\x00\x00\x00\x00`\xd3@\x00\x00\x00\x00\xc0\xd1\xf0@\x00\x00\x00\x00p\xab\xf9@\x9a\x99\x99\x99\x99y_@\xf6(\\\x8f\xc2u_@\xecQ\xb8\x1e\x85k_@\x14\xaeG\xe1zT_@\x14\xaeG\xe1zt_@\n\xd7\xa3p=z_@\xb8\x1e\x85\xebQx_@\x9a\x99\x99\x99\x99y_@\x9a\x99\x99\x99\x99y_@\xecQ\xb8\x1e\x85k_@\xd7\xa3p=\nw_@\x00\x00\x00\x00\x00\x80_@\\\x8f\xc2\xf5(|_@=\n\xd7\xa3p}_@\x9a\x99\x99\x99\x99y_@\xf6(\\\x8f\xc2u_@\xecQ\xb8\x1e\x85k_@33333S_@\xa4p=\n\xd7s_@q=\n\xd7\xa3p_@fffffv_@\x9a\x99\x99\x99\x99y_@\x9a\x99\x99\x99\x99y_@\xecQ\xb8\x1e\x85k_@\x14\xaeG\xe1zt_@fffffv_@H\xe1z\x14\xaew_@=\n\xd7\xa3p}_@\x9a\x99\x99\x99\x99y_@\x9a\x99\x99\x99\x99y_@\xecQ\xb8\x1e\x85k_@\x14\xaeG\xe1zt_@fffffv_@H\xe1z\x14\xaew_@=\n\xd7\xa3p}_@\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7f\x00\x00\x00\x00\x00\x00\xf8\x7fq{tq|bh\x0fh\x10K\x00\x85q}h\x12\x87q~Rq\x7f(K\x01K\x01K\x07\x86q\x80h\x16X\x02\x00\x00\x00i8q\x81K\x00K\x01\x87q\x82Rq\x83(K\x03hYNNNJ\xff\xff\xff\xffJ\xff\xff\xff\xffK\x00tq\x84b\x89C8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc4\x83\x03\x00\x00\x00\x00\x00\xda^\x02\x00\x00\x00\x00\x00Y\x13\x02\x00\x00\x00\x00\x00\x85\x91\x01\x00\x00\x00\x00\x00q\x85tq\x86be]q\x87(h\x07h\x08}q\x88(h\n]q\x89(h\x07h\x0c}q\x8a(h\x0eh\x0fh\x10K\x00\x85q\x8bh\x12\x87q\x8cRq\x8d(K\x01K\x04\x85q\x8eh\x19\x89]q\x8f(h\x1dh\x1eh\x1fh etq\x90bh"Nu\x86q\x91Rq\x92h\x07h\x0c}q\x93(h\x0eh\x0fh\x10K\x00\x85q\x94h\x12\x87q\x95Rq\x96(K\x01K\x06\x85q\x97h\x19\x89]q\x98(h+h,h-h.h/h0etq\x99bh"Nu\x86q\x9aRq\x9beh4]q\x9c(h\x0fh6K\x00\x85q\x9dh\x12\x87q\x9eRq\x9f(K\x01K\x17\x85q\xa0h=\x89C\x17\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x03\x03\x03\x03\x03\x03q\xa1tq\xa2bh\x0fh6K\x00\x85q\xa3h\x12\x87q\xa4Rq\xa5(K\x01K\x17\x85q\xa6h=\x89C\x17\x00\x01\x02\x03\x04\x05\x00\x01\x02\x03\x04\x00\x01\x02\x03\x04\x05\x00\x01\x02\x03\x04\x05q\xa7tq\xa8behGNhH]q\xa9(NNeu\x86q\xaaRq\xabh\x07h\x08}q\xac(h\n]q\xad(h\x07h\x0c}q\xae(h\x0eh\x0fh\x10K\x00\x85q\xafh\x12\x87q\xb0Rq\xb1(K\x01K\x04\x85q\xb2h\x19\x89]q\xb3(h\x1dh\x1eh\x1fh etq\xb4bh"Nu\x86q\xb5Rq\xb6h\x07h\x0c}q\xb7(h\x0eh\x0fh\x10K\x00\x85q\xb8h\x12\x87q\xb9Rq\xba(K\x01K\x06\x85q\xbbh\x19\x89]q\xbc(h+h,h-h.h/h0etq\xbdbh"Nu\x86q\xbeRq\xbfeh4]q\xc0(h\x0fh6K\x00\x85q\xc1h\x12\x87q\xc2Rq\xc3(K\x01K\x01\x85q\xc4h=\x89C\x01\x01q\xc5tq\xc6bh\x0fh6K\x00\x85q\xc7h\x12\x87q\xc8Rq\xc9(K\x01K\x01\x85q\xcah=\x89C\x01\x05q\xcbtq\xccbehGNhH]q\xcd(NNeu\x86q\xceRq\xcfe}q\xd0X\x06\x00\x00\x000.14.1q\xd1}q\xd2(X\x04\x00\x00\x00axesq\xd3h\x06X\x06\x00\x00\x00blocksq\xd4]q\xd5(}q\xd6(X\x06\x00\x00\x00valuesq\xd7huX\x08\x00\x00\x00mgr_locsq\xd8h\x0fh\x10K\x00\x85q\xd9h\x12\x87q\xdaRq\xdb(K\x01K\x17\x85q\xdch\x83\x89C\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\t\x00\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\r\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00q\xddtq\xdebu}q\xdf(h\xd7h\x7fh\xd8cbuiltins\nslice\nq\xe0K\x0bK\x0cK\x01\x87q\xe1Rq\xe2ueustq\xe3bX\x04\x00\x00\x00_typq\xe4X\t\x00\x00\x00dataframeq\xe5X\t\x00\x00\x00_metadataq\xe6]q\xe7ub.'
datas=pickle.loads(abc)
print(datas.to_string())    

输出:

                              AAP                                                 CVX                                            XOK                                 DWDP                                
                             Open    High     Low   Close Adj Close    Volume    Open    High     Low   Close Adj Close  Volume Open High Low Close Adj Close Volume Open High Low Close Adj Close Volume
Datetime                                                                                                                                                                                                 
2019-07-12 07:15:00-04:00     NaN     NaN     NaN     NaN       NaN       NaN  125.90  125.90  125.90  125.90    125.90       0  NaN  NaN NaN   NaN       NaN    NaN  NaN  NaN NaN   NaN       NaN    NaN
2019-07-12 07:30:00-04:00     NaN     NaN     NaN     NaN       NaN       NaN  125.84  125.90  125.84  125.90    125.90       0  NaN  NaN NaN   NaN       NaN    NaN  NaN  NaN NaN   NaN       NaN    NaN
2019-07-12 08:30:00-04:00     NaN     NaN     NaN     NaN       NaN       NaN  125.68  125.68  125.68  125.68    125.68       0  NaN  NaN NaN   NaN       NaN    NaN  NaN  NaN NaN   NaN       NaN    NaN
2019-07-12 09:30:00-04:00  156.47  156.86  155.89  156.57    156.57   19992.0  125.32  125.86  125.30  125.82    125.82  230340  NaN  NaN NaN   NaN       NaN    NaN  NaN  NaN NaN   NaN       NaN    NaN
2019-07-12 09:45:00-04:00  156.53  157.21  156.36  157.16    157.16   19840.0  125.82  126.00  125.81  125.85    125.85  155354  NaN  NaN NaN   NaN       NaN    NaN  NaN  NaN NaN   NaN       NaN    NaN
2019-07-12 10:00:00-04:00  157.18  157.68  157.06  157.68    157.68   68892.0  125.91  125.94  125.76  125.87    125.87  136025  NaN  NaN NaN   NaN       NaN    NaN  NaN  NaN NaN   NaN       NaN    NaN
2019-07-12 10:15:00-04:00  157.63  158.22  157.63  158.09    158.09  105143.0  125.88  125.96  125.85  125.96    125.96  102789  NaN  NaN NaN   NaN       NaN    NaN  NaN  NaN NaN   NaN       NaN    NaN

我尝试删除Nan公园,看起来还不错...

for i in datas.columns.levels[0]:     
     datas[i,'Indicator']=np.log(datas[i,'High']/6+
         datas[i,'Low']/6+
         datas[i,'Open']/3+
         datas[i,'Close']/3)
     del datas[i,'High']
     del datas[i,'Low']
     del datas[i,'Open']
     del datas[i,'Close']
     del datas[i,'Adj Close']
     datas[i,'Volume']=np.log(datas[i,'Volume']+1.0)
for i in datas.columns.levels[0]:  #Deletes all the depreciated symbols, yahoo finance guy didn't deal with his exceptions
    boolean=pd.isnull(datas[i]).all()
    if boolean[0] or boolean[1]:
        datas.drop(i,axis=1, inplace=True)
        print(i)
print(datas.to_string())

输出:     XOK     DWDP

                                 AAP        CVX       AAP       CVX
                              Volume     Volume Indicator Indicator
Datetime                                                           
2019-07-12 07:15:00-04:00        NaN   0.000000       NaN  4.835488
2019-07-12 07:30:00-04:00        NaN   0.000000       NaN  4.835250
2019-07-12 08:30:00-04:00        NaN   0.000000       NaN  4.833739
2019-07-12 09:30:00-04:00   9.903137  12.347316  5.052875  4.832890
2019-07-12 09:45:00-04:00   9.895506  11.953468  5.055131  4.835157
2019-07-12 10:00:00-04:00  11.140310  11.820601  5.058854  4.835303
2019-07-12 10:15:00-04:00  11.563086  11.540443  5.061846  4.835607

但是事实证明,这些列永远都不会消失。

print(datas.columns)

输出:

MultiIndex(levels=[['AAP', 'CVX', 'XOK', 'DWDP'], ['Open', 'High', 'Low', 'Close', 'Adj Close', 'Volume', 'Indicator']],
           codes=[[0, 1, 0, 1], [5, 5, 6, 6]])
/usr/local/lib/python3.6/dist-packages/pandas/core/generic.py:3812: PerformanceWarning: dropping on a non-lexsorted multi-index without a level parameter may impact performance.
  new_axis = axis.drop(labels, errors=errors)

1 个答案:

答案 0 :(得分:0)

https://github.com/pandas-dev/pandas/issues/2770

这似乎可以解决问题

datas.columns = datas.columns.remove_unused_levels()
datas.columns