我有一个函数foo()
,其输入参数数据帧将每个值都计算为大1。因此,数据帧400x5减少为1x5。
现在我有一个类似的数据框
Country Value1 Value2
US 1 3
Uk 3 2
US 2 1
UK 5 5
结果看起来像
Country Value1 Value2
US 1 1
Uk 2 2
我的目标是按国家/地区划分数据集并执行我的foo()
。我发现有solution用groupby()
分割数据集,但是groupby
给了我tuples
而不是数据帧,这是个问题,因为我的foo()
只吃了数据帧。有人知道如何将数据框拆分为多个数据框并对其执行功能吗?
答案 0 :(得分:1)
import pandas as pd
from pandas.compat import StringIO
print(pd.__version__)
data = """Country Value1 Value2
US 1 3
UK 3 2
US 2 1
UK 5 5"""
df = pd.read_csv(StringIO(data), sep='\s+')
df = df.groupby('Country').apply(lambda x: x.where(x > 1).count())
print(df)
生产
0.24.2
Value1 Value2
Country
UK 2 2
US 1 1
请注意,这些国家/地区以区分大小写的方式处理,Q包含大小写混合的情况,答案则不然。