首页 > 解决方案 > 将属性 pandas.DataFrame.shape 应用于存储在元组中的多个数据框

问题描述

我有一个函数,它作为输出返回一个包含多个pd.DataFrame对象的元组。

举个例子:

import pandas as pd

def myfunction():
    x = pd.DataFrame(data = [1,2,3])
    y = pd.DataFrame(data = [[1,2,3],[4,5,6]])
    return x, y

myfunction()

我正在寻找一种简洁的方法将属性pandas.DataFrame.shape应用于存储在调用产生的元组中的每个对象myfunction()

解决方案不能包含循环!

标签: pythonpandas

解决方案


一种方法是使用operator.attrgetter

from operator import attrgetter

shapes = list(map(attrgetter('shape'), myfunction()))

[(3, 1), (2, 3)]

尽管您不是在寻找显式循环,但这是更具可读性的版本:

shapes = [x.shape for x in myfunction()]

推荐阅读