我有一个字典,其中包含几个相同格式的数据帧。我想在所有数据框中找到特定列的最大值。我可以遍历字典,但我认为必须有一种更Python的方式来做到这一点。
例如,说我有两个数据框:
b = pd.DataFrame({'name': ['Ted', 'Ben', 'Frank', 'Allen'],
'age': [22,38,26,35]})
g = pd.DataFrame({'name': ['Emily', 'Anna', 'Amy', 'Steph'],
'age': [18,23,44,21]})
包含在字典中:
dict = {'Boys': b,
'Girls': g}
然后,我认为类似的事情会起作用,但这不是因为字典不是可下标的,我想我明白,我只是不确定这样做的正确方法:
Max = max(dict.values()['age'])
是否有更好的方法而不循环遍历? (如果不清楚,在此示例中答案应为44)
执行以下操作:
from itertools import chain
result = max(chain.from_iterable(df['age'] for df in d.values()))
print(result)
输出
44
注意,由于您不应该使用内置名称,例如d
,因此我将字典重命名为dict
。
据我所知,您正在寻找这样的东西:
max(b.append(g)['age'])
Out[1]:
44
df = pd.concat(d.values())
m = df.max()
print(m)
name Ted
age 44
dtype: object