使用 Pandas 按列值对 DataFrame 进行分组

我有以下(熊猫)DataFrame:


    b    c    d    e

0  100  369  203  314

1  100  228  784  366

2  200  811  664  202

3  200  531  932  575

我想迭代它的行,但我需要知道b更改的值的位置。我正在寻找一种以组或类似方式获取此 DF 内容的方法,然后遍历每个组的行(使用嵌套循环,这样我就可以得到b值确实发生变化的指示):


在第一次迭代中,我的新 df 将是:


    b    c    d    e

0  100  369  203  314

1  100  228  784  366

在第二次迭代中,我的新 df 将是:


    b    c    d    e

0  200  811  664  202

1  200  531  932  575


冉冉说
浏览 448回答 1
1回答

MYYA

您可以使用groupby方法:from pandas import DataFramecolumns = ["b", "c", "d", "e"]data = [[100, 369, 203, 314], [100, 228, 784, 366], [200, 811, 664, 202], [200, 531, 932, 575]]df = DataFrame(data=data,columns=columns)def split_dfs(df, col):    return [group[1] for group in list(df.groupby(col))]dfs = split_dfs(df, "b")for df_group in dfs:    print(df_group)    b    c    d    e0  100  369  203  3141  100  228  784  366     b    c    d    e2  200  811  664  2023  200  531  932  575
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python