繁体   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