gpt4 book ai didi

python - 根据具有重复值的列表重新排序 Pandas 数据框

转载 作者:太空宇宙 更新时间:2023-11-04 04:26:00 25 4
gpt4 key购买 nike

我有以下形式的数据框:

    company  col1     col2   col3
name
0 A 0 130 0
1 C 173 0 0
2 Z 0 0 150
3 A 0 145 0
4 Z 0 0 140
5 Z 0 0 110

我想根据以下列表重新排序数据框:

list=['A', 'Z', 'Z', 'A', 'C', 'Z']

我无法将“公司名称”设置为索引并使用 df.reindex(list) 因为我在该索引中有重复的条目。重要的是我有重复的条目(数据是虚拟数据)。

在这种情况下如何重新排序 df?

最佳答案

您可以使用 merge使用由 cumcount 创建的带有列表和计数器列的助手 DataFrame :

注意:
不要使用变量名list,因为python码字。

L = ['A', 'Z', 'Z', 'A', 'C', 'Z']

df1 = pd.DataFrame({'company':L})
df1['g'] = df1.groupby('company').cumcount()
df['g'] = df.groupby('company').cumcount()

df = df1.merge(df)
print (df)
company g col1 col2 col3
0 A 0 0 130 0
1 Z 0 0 0 150
2 Z 1 0 0 140
3 A 1 0 145 0
4 C 0 173 0 0
5 Z 2 0 0 110

关于python - 根据具有重复值的列表重新排序 Pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53495750/

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