Python 删除数据帧中的嵌套数组

Python 删除数据帧中的嵌套数组,python,pandas,data-structures,dataframe,Python,Pandas,Data Structures,Dataframe,我正在尝试将.mat文件转换为pandas数据帧,但是.mat文件的结构使其难以分解。目前,数据帧如下所示 A 2008-01-02 [1] 2008-01-03 [2] 2008-01-04 [3] 2008-01-07 [4] 2008-01-08 [5] 看起来每个列中包含的值都包含在它们

我正在尝试将.mat文件转换为pandas数据帧,但是.mat文件的结构使其难以分解。目前,数据帧如下所示

                          A
2008-01-02                [1]
2008-01-03                [2]
2008-01-04                [3]
2008-01-07                [4]
2008-01-08                [5]
看起来每个列中包含的值都包含在它们自己的数组?中。数据类型正在返回对象。我最终希望聚合我的列,但由于它们不是数字,我无法执行数字函数调用。关于如何在保留数据帧结构的同时从数组结构中删除值,有什么想法吗

您可以使用该方法对数据帧的列应用操作


您需要定义
函数
,然后将其传递给
apply
方法,具体取决于
对象的类型。例如,如果是列表,您可能希望选择第一项,如果是字符串,您可能希望提取并转换数字。

这似乎有效

df = pd.DataFrame(data)
unnested_lst = []
for col in df.columns:
    unnested_lst.append(df[col].apply(pd.Series).stack())
result = pd.concat(unnested_lst, axis=1, keys=df.columns)
result
                            A
2008-01-02     0            1
2008-01-03     0            2
2008-01-04     0            3
2008-01-07     0            4
2008-01-08     0            5

不确定如何删除零的索引列。有什么想法吗?

如果我理解正确,每个条目都是包含在Python列表中的元素,您希望从列表中删除该元素,以便每个条目都是标量

一种方法是使用函数。请注意,此函数适用于整个数据帧

df = df.applymap(lambda x: x[0]) # If same operation is to be used on all columns
如果您只想对某些列执行转换,可以使用:

在这两种情况下,您可能必须在之后更改列的
dtype
,才能使用它们;从列表更改为单个元素时,可以保留列的
对象数据类型
。如果是这种情况,您可以使用:

df['column name'] = df['column name'].astype([new type])

这就是我要找的。谢谢
df['column name'] = df['column name'].astype([new type])