gpt4 book ai didi

sql - 基于不同 Pandas DataFrame 条件查找的返回值

转载 作者:行者123 更新时间:2023-12-02 06:48:16 24 4
gpt4 key购买 nike

目标:(有条件地)从一个数据框中查找值并将结果放入具有新列名的不同数据框中

df_1 = pd.DataFrame({'user_id': [1,2,1,4,5],
'name': ['abc','def','ghi','abc','abc'],
'rank': [6,7,8,9,10]})
df_2 = pd.DataFrame ({'user_id': [1,2,3,4,5]})

df_1 # original data

df_2 # new dataframe

在这个一般示例中,我试图创建一个名为“priority_rank”的新列,并且仅根据针对 df_1 的条件查找来填充“priority_rank”,即:

  • user_id 必须在 df_1 和 df_2 之间匹配
  • 我只对 df_1['name'] == 'abc' 感兴趣,其他都应该是空白

df_2 应该看起来像这样:

|user_id|priority_rank|
1 6
2
3
4 9
5 10

最佳答案

一种方法:

In []:
df_2['priority_rank'] = np.where((df_1.name=='abc') & (df_1.user_id==df_2.user_id), df_1['rank'], '')
df_2

Out[]:
user_id priority_rank
0 1 6
1 2
2 3
3 4 9
4 5 10

注意:在您的示例中,df_1.name=='abc' 是一个充分条件,因为当 df_1.name== 时,user_id 的所有值都相同'abc'。我假设情况并非总是如此。

关于sql - 基于不同 Pandas DataFrame 条件查找的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52022691/

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