python解析mf4中的信号数据一般用np.ndarray存储,但是mf4中的一个信号有时不一定是一维数据,有时会是一个二维的,没错,就是一个信号数据就是二维的,这时候,np数组的每个元素也是一个数组,这个时候就要注意了,当一个mf4有这种数据时,这时转成dataframe的时候是下图这样的
这种数据是没法直接计算的,所以需要单独处理,然后mf4可能还有信号是字符串类型,转成df后为每个元素的类型为np.bytes_类型,然后我还有一个mf4是正常的,没有这种数据,那么在这时候,我想使用pd.concat函数拼接两个df的时候就会报如下错误
Traceback (most recent call last):File "c:\Users\master01\Desktop\下载\AnalysisTools\task_threads.py", line 451, in rundf = pd.concat([df,df_tmp],axis=0)File "C:\Users\master01\Anaconda3\lib\site-packages\pandas\util\_decorators.py", line 311, in wrapperreturn func(*args, **kwargs)File "C:\Users\master01\Anaconda3\lib\site-packages\pandas\core\reshape\concat.py", line 360, in concatreturn op.get_result()File "C:\Users\master01\Anaconda3\lib\site-packages\pandas\core\reshape\concat.py", line 595, in get_resultnew_data = concatenate_managers(File "C:\Users\master01\Anaconda3\lib\site-packages\pandas\core\internals\concat.py", line 242, in concatenate_managersvalues = _concatenate_join_units(join_units, concat_axis, copy=copy)File "C:\Users\master01\Anaconda3\lib\site-packages\pandas\core\internals\concat.py", line 543, in _concatenate_join_unitsupcasted_na = _dtype_to_na_value(empty_dtype, has_none_blocks)File "C:\Users\master01\Anaconda3\lib\site-packages\pandas\core\internals\concat.py", line 604, in _dtype_to_na_valueraise NotImplementedError
NotImplementedError
所以,当遇到这种信号的时候,需要把bytes类型信号去掉,否则会影响df的拼接,经过打印知道,这种信号的单个元素一般是np.bytes_类型,所以通过type或者isinstance类型判断,把这种数据去掉,解决!!!!
后记:但是这种情况我自己创建数据并没有复现,后面再看看