gpt4 book ai didi

python - 按照给定列表的顺序选择pandas 数据框的行并重复并保留原始索引

转载 作者:行者123 更新时间:2023-12-04 09:17:07 25 4
gpt4 key购买 nike

看了之后herehere在文档中,我仍然找不到根据所有这些条件从 DataFrame 中选择行的方法:

  • 按照给定列的值列表中给定的顺序返回行
  • 返回重复行(与列表中的重复值相关联)
  • 保留原始索引
  • 忽略数据帧中不存在的列表值

  • 举个例子,让
    df = pd.DataFrame({'A': [5, 6, 3, 4], 'B': [1, 2, 3, 5]})
    df

    A B
    0 5 1
    1 6 2
    2 3 3
    3 4 5
    然后让
    list_of_values = [3, 4, 6, 4, 3, 8]
    然后我想获得以下数据帧:
         A   B
    2 3 3
    3 4 5
    1 6 2
    3 4 5
    2 3 3
    我怎样才能做到这一点? Zero's answer看起来很有希望,因为它是我发现的唯一一个保留原始索引的索引,但它不适用于重复。关于如何修改/概括它的任何想法?

    最佳答案

    我们必须保留 index首先将其分配为列,这样我们就可以 set_index融合后:

    list_of_values = [3, 4, 6, 4, 3, 8]
    df2 = pd.DataFrame({'A': list_of_values, 'order': range(len(list_of_values))})

    dfn = (
    df.assign(idx=df.index)
    .merge(df2, on='A')
    .sort_values('order')
    .set_index('idx')
    .drop('order', axis=1)
    )
         A  B
    idx
    2 3 3
    3 4 5
    1 6 2
    3 4 5
    2 3 3
    如果您想去掉索引名称( idx ),请使用 rename_axis :
    dfn = dfn.rename_axis(None)

    A B
    2 3 3
    3 4 5
    1 6 2
    3 4 5
    2 3 3

    关于python - 按照给定列表的顺序选择pandas 数据框的行并重复并保留原始索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63170157/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com