gpt4 book ai didi

python - 使用列表过滤 Pandas Dataframe,但确保元素计数与列表中的计数相匹配

转载 作者:行者123 更新时间:2023-12-05 05:52:11 28 4
gpt4 key购买 nike

所以我有一个列表

my_list = [1,1,2,3,4,4]

我有一个看起来像这样的数据框

col_1    col_2
a 1
b 1
c 2
d 3
e 3
f 4
g 4
h 4

我基本上想要一个像这样的最终数据框

col_1    col_2
a 1
b 1
c 2
d 3
f 4
g 4

基本不会用

my_df[my_df['col_2'].isin(my_list)]

因为这将包括所有行。我想要与列表中的每个项目匹配的第一行,但行数相同。

最佳答案

使用GroupBy.cumcount用于计数器与原始和辅助 DataFrame 并通过内部连接过滤 DataFrame.merge :

my_list = [1,1,2,3,4,4]

df1 = pd.DataFrame({'col_2':my_list})
df1['g'] = df1.groupby('col_2').cumcount()
my_df['g'] = my_df.groupby('col_2').cumcount()

df = my_df.merge(df1).drop('g', axis=1)

print (df)
col_1 col_2
0 a 1
1 b 1
2 c 2
3 d 3
4 f 4
5 g 4

关于python - 使用列表过滤 Pandas Dataframe,但确保元素计数与列表中的计数相匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70245600/

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