【问题标题】:Groupby loop over, group second dataframe in the same loopGroupby循环,在同一个循环中分组第二个数据帧
【发布时间】:2018-01-29 16:33:12
【问题描述】:

将这个小示例视为最近一篇文章的后续内容:

sd={"X":[1, 2, 3, 4, 5], "Y":[6, 7, 8, 9, 10], "Z": [11, 12, 13, 14, 15])
frame1=pd.DataFrame(data,columns=["X","Y","Z"],index=["A","A","A","B","B"])

我想将“frame1”与

grouped_frame1=frame1.groupby(frame1.index)

现在我想通过以下方式遍历组:

for name,group in grouped_frame1:
     ...

但是,我有第二个数据框

mean={"X":[21, 22, 23, 24, 25], "Y":[26, 27, 28, 29, 30], "Z": [31, 32, 33, 34, 35])
frame2=pd.DataFrame(data,columns=["X","Y","Z"],index=["A","A","A","B","B"])

我还想在上面的 for 循环中按照 frame1 中的组进行分组,因为存在相同的组(大小、索引)。如何在“grouped_frame1”循环中子集和使用 frame2-groups?

【问题讨论】:

    标签: pandas loops group-by


    【解决方案1】:

    由于你的索引是相同的,你可以这样做:

    grouped = frame1.groupby(frame1.index)
    for name,group in grouped
         print(group)
         print(frame2.loc[frame2.index == name])
    

    【讨论】:

    • 好的,成功了。在子集之前,我必须考虑一些 str.split 索引。
    猜你喜欢
    • 2020-06-11
    • 2014-07-21
    • 1970-01-01
    • 1970-01-01
    • 2017-06-22
    • 2021-08-30
    • 2016-10-05
    • 2013-08-04
    • 1970-01-01
    相关资源
    最近更新 更多