因此,我正在尝试将.mat文件转换为DataFrame,以便在转换后运行一些数据分析,我有一个DataFrame结构(请参阅1),但我不知道如何从DataFrame中的对象中删除括号。我试着利用:Mdataframe[‘0’]=mdataframe[‘0’].str[0]和Mdataframe[‘0’]=mdataframe[‘0’].str.get(0)试图修复第0列,但无济于事。任何帮助和指导都将不胜感激。谢谢!
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)有其正确的条目。我希望这个例子能对你的研究有所帮助。真诚地
1条答案
按热度按时间jdzmm42g1#
谢谢你的提问。这确实是一个非常有趣的主题。就我个人而言,我从来没有见过像您这样的问题;然而,解决您的DataFrame转换问题非常简单。
首先,您需要两个步骤:
1.有一个挤压函数,它将应用于表中的每个条目(即,DataFrame)。此函数的作用必须类似于降维器。因为我们不知道表的每个单元格中会有多少维,所以该函数必须能够调用自身(递归函数)。
1.对表中的每个条目应用挤压函数,并返回转换后的表。
因此,通过遵循步骤1和2,我已经创建了一个代码片段,该代码片段生成与您的示例类似的DataFrame,并相应地挤压其单元格。
代码片段
注意,df示例有您的嵌套列表,而其转换后的形式(即df2)有其正确的条目。
我希望这个例子能对你的研究有所帮助。
真诚地