繁体   English   中英

功能与 R 拆分函数相似的 Python 函数

[英]Python function with similar functionality as R split function

我有一个包含多列的数据框,我需要将其划分为由参数(列等)定义的组向量

R 有一个分割函数如下:

数据框 A

 >   date  c1 c2 c3  c4 

 >   2021   1  1  a  ss

 >   2022   1  1  b  sa

 >   2023   3  1  b  sd

data_splitting= split(A, by=c('C1', 'C2'), keep.by=FALSE)

导致 R向量

向量

  >  1.1 

  >  2021 a ss

  >  2022 b sa

  >  3.1

  >  2023 b sd

我需要python 中的类似功能

谢谢科斯塔斯

这可以通过熊猫来实现groupbypandas

import pandas as pd

test_a = pd.DataFrame(dict(
  date=(2021, 2022, 2023),
  c1=(1,1,3),
  c2=(1,1,1),
  c3=("a", "b", "b"),
  c4 =("ss", "sa", "sd")
))


split_a = test_a.groupby(["c1", "c2"])

现在split_a将是一个迭代器,它保存上面的数据帧。 您可以通过迭代它们以创建数据帧列表来恢复它们:

for indx, split_data in split_a:
    print("Index:", indx)
    print(split_data)
    #  if you need the values, just use split_data.values

由于您正在为每个组应用预测; 这可以通过对组的申请来完成。 作为一个简单的例子,让我们做一个返回数据帧中行数的函数:

def nrows(df):
    return df.shape[0]

然后使用 apply 运行这个将在每个组上运行“预测功能”:

def nrows(df):
    return df.shape[0]

nrows_by_group = test_a.groupby(["c1", "c2"]).apply(nrows)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM