matlab 从Pandas数据框中移除嵌套的括号?

fkaflof6  于 2022-11-15  发布在  Matlab
关注(0)|答案(1)|浏览(208)

因此,我正在尝试将.mat文件转换为DataFrame,以便在转换后运行一些数据分析,我有一个DataFrame结构(请参阅1),但我不知道如何从DataFrame中的对象中删除括号。我试着利用:
Mdataframe[‘0’]=mdataframe[‘0’].str[0]

Mdataframe[‘0’]=mdataframe[‘0’].str.get(0)
试图修复第0列,但无济于事。任何帮助和指导都将不胜感激。
谢谢!

jdzmm42g

jdzmm42g1#

谢谢你的提问。这确实是一个非常有趣的主题。就我个人而言,我从来没有见过像您这样的问题;然而,解决您的DataFrame转换问题非常简单。
首先,您需要两个步骤:
1.有一个挤压函数,它将应用于表中的每个条目(即,DataFrame)。此函数的作用必须类似于降维器。因为我们不知道表的每个单元格中会有多少维,所以该函数必须能够调用自身(递归函数)。
1.对表中的每个条目应用挤压函数,并返回转换后的表。
因此,通过遵循步骤1和2,我已经创建了一个代码片段,该代码片段生成与您的示例类似的DataFrame,并相应地挤压其单元格。

代码片段

import numpy as np
import pandas as pd
from typing import Any, List
from numbers import Number

def generateDataFrameWithnestedListsInItsCells() -> pd.DataFrame:
    df = pd.DataFrame.from_records([[[["a"]]], [["b"]], [[["c"]]], [["b"]]])
    

    return df

def squashList(element:List[Number]) -> Any:
    
    array = np.asanyarray(element, dtype=list)
    
    array = np.ravel(element)
    
    while np.ndim(array) > 1:
        squashList(element)
    
    return array[0]

if "__main__" == __name__:
    
    df = generateDataFrameWithnestedListsInItsCells()
    
    df2 = df.applymap(squashList)

注意,df示例有您的嵌套列表,而其转换后的形式(即df2)有其正确的条目。
我希望这个例子能对你的研究有所帮助。
真诚地

相关问题