【问题标题】:How to split a Dataframe into Sub-Dataframes by row index如何按行索引将数据框拆分为子数据框
【发布时间】:2019-05-15 17:56:36
【问题描述】:

我有一个函数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() 只吃数据帧。有谁知道如何将我的数据框拆分为数据框并在它们上执行我的功能?

【问题讨论】:

  • 你可以试试:df.groupby('country').apply(foo).
  • df.groupby(level=0).diff() ?

标签: python pandas dataframe split group-by


【解决方案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 包含混合大小写,答案不包含。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多