簡體   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