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

2024-06-11 20:29:51 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,当我尝试使用drop或del删除pandas数据帧中的列时,它会保留我出于某种原因删除的索引,即使没有任何属性值。这真的弄乱了我的for循环。我也在使用pickle,我可以尽可能地重现原始问题。你知道吗

这是我的数据帧:

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

我试着删除南国公园,看起来没问题。。。你知道吗

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)

Tags: nanx00x04x03x01x02x7fxff