根据多个列值编译 Pandas Dataframe 中相似行的计数

问题描述 投票:0回答:0

我有两个 Dataframes,一个包含我从 CSV 文件中读取的数据,另一个包含除最后一个列之外的所有列分组的数据,并重新索引以包含一个用于计算组大小的列。

df_k1 = pd.read_csv(filename, sep=';')
columns_for_groups = list(df_k1.columns)[:-1]
k1_grouped = df_k1.groupby(columns_for_groups).size().reset_index(name="Count")

我需要创建一个系列,使得系列中的每一行(i)对应于我原始数据框中的行(i),但系列的内容需要是该行在分组数据框中所属的组的大小.我目前有这个,它可以满足我的目的,但我想知道是否有人知道更快或更优雅的解决方案。

size_by_row = []
for row in df_k1.itertuples():
    for group in k1_grouped.itertuples():
        if row[1:-1] == group[1:-1]:
            size_by_row.append(group[-1])
            break
group_size = pd.Series(size_by_row)
pandas dataframe group-by comparison series
© www.soinside.com 2019 - 2024. All rights reserved.