为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

冉冉说 2021-08-17 09:52:02
我有以下(熊猫)DataFrame:    b    c    d    e0  100  369  203  3141  100  228  784  3662  200  811  664  2023  200  531  932  575我想迭代它的行,但我需要知道b更改的值的位置。我正在寻找一种以组或类似方式获取此 DF 内容的方法,然后遍历每个组的行(使用嵌套循环,这样我就可以得到b值确实发生变化的指示):在第一次迭代中,我的新 df 将是:    b    c    d    e0  100  369  203  3141  100  228  784  366在第二次迭代中,我的新 df 将是:    b    c    d    e0  200  811  664  2021  200  531  932  575
查看完整描述

1 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

您可以使用groupby方法:


from pandas import DataFrame

columns = ["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    e

0  100  369  203  314

1  100  228  784  366

     b    c    d    e

2  200  811  664  202

3  200  531  932  575


查看完整回答
反对 回复 2021-08-17
  • 1 回答
  • 0 关注
  • 447 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号