【问题标题】:How to select DataFrame index's values based on value of another numpy array?如何根据另一个 numpy 数组的值选择 DataFrame 索引的值?
【发布时间】:2017-11-13 10:32:15
【问题描述】:

我有

a = pd.DataFrame({'user_id': [101,102,103,104,105],
                  'date1': [0,1,2,3,4],
                  'date2': [0,1,2,3,4]})
a.set_index('user_id')

我想选择 a 中与 b 的值具有相同索引的值(如下)

b = np.array(['101', '104']) 

最后,我得到了包含 user_id 101 和 104 的 date1 和 date2 值的数据框。感谢您的帮助。在过去的几个小时里,我一直在尝试很多不同的组合,并决定放弃并改为发布这个问题:(

【问题讨论】:

    标签: pandas numpy select dataframe indexing


    【解决方案1】:

    请注意,您没有保留a 的索引设置。您可以使用a = a.set_index('user_id') 重新分配回a,或者使用inplace=True 参数和a.set_index('user_id', inplace=True),或者两者都不使用,因为我们将在下面链接结果。

    使用loc 引用索引值数组。尝试使用字符串引用整数索引时要小心,反之亦然。

    a.set_index('user_id').loc[b.astype(int)]
    
             date1  date2
    user_id              
    101          0      0
    104          3      3
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多