簡體   English   中英

刪除具有復雜列名的列時出現pandas錯誤

[英]pandas error in dropping column with complex column name

出於實際原因,我需要使用復雜元組定義列名。 問題是我不能像往常一樣丟棄列。 要復制我的問題,

complex_column_name = (u'CHRIS/CME_SP1', 34, ((u'CHRIS/CME_SP1_Settle_rolling_200_mean_to_current_value', 1),))

pd_tmp = pd.DataFrame(np.random.randn(4,1),columns=[complex_column_name])

pd_tmp.drop(complex_column_name,axis=1)

錯誤是:

ValueError: setting an array element with a sequence

有幫助嗎? 謝謝。

這不是設置列名的有效方法,所以改為使用布爾掩碼並選擇列而不是刪除它,即

mask = pd_tmp.columns != complex_column_name
ndf = pd_tmp.iloc[:,mask]

復制代碼后,我收到以下消息。

...\Anaconda3\lib\site-packages\numpy\core\numeric.py in asarray(a, dtype, order)
    480 
    481     """
--> 482     return array(a, dtype, copy=False, order=order)
    483 
    484 def asanyarray(a, dtype=None, order=None):

ValueError: setting an array element with a sequence

根據numpy.asarray

輸入數據,可以轉換為數組的任何形式。 這包括列表,元組列表,元組,元組元組,列表元組和ndarray。

這里的complex_column_name是一個復雜的序列,不包含在上面。
我的建議是使你的complex_column_name更簡單。 希望這可能會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM