【问题标题】:Pandas map according to values in multiple columnsPandas 根据多列中的值映射
【发布时间】:2019-07-18 11:25:33
【问题描述】:

我想使用一个映射,该映射根据 2 个或更多系列的对应值将唯一值映射到 DataFrame 例如,如果 c 是使用列 'a' 和 'b' 的值的映射,如图所示

那么对于下面的数据框,我应该有如下映射:

就像上面显示的数据框中的每个 (0, 0) 对一样,c 的值为 1,(1,1) 对的值将是 4,等等。

逻辑应该扩展到多列,即可以有 C1、C2、C3 列,对于每个列的组合唯一值,我应该能够将一个值映射到包含这些值的数据框。

第二个数据框的行顺序也不能改变

最优雅的方法是什么?感谢您的帮助

【问题讨论】:

  • 第二个输入是什么?您是从只有 a 列和 b 列的 DataFrame 映射的?
  • 是的,dataframe只有a列和b列,c是a和b的值对应的唯一值。虽然我可以有超过 2 列,并且逻辑也应该能够为它们映射唯一值

标签: python python-3.x pandas pandas-groupby data-manipulation


【解决方案1】:

你可以使用merge:

df2.merge(df1, how="left")

另请参阅merging section of the docs

【讨论】:

  • 但是df2的行顺序正在改变,这不应该发生
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-04
  • 2022-11-24
  • 1970-01-01
  • 2016-08-28
  • 2018-11-07
  • 2023-03-15
  • 1970-01-01
相关资源
最近更新 更多