因此,当我尝试使用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)
https://github.com/pandas-dev/pandas/issues/2770
这似乎很管用
相关问题 更多 >
编程相关推荐