python - Pandas - 根据另一个表中的值设置行值
问题描述
我在熊猫中有两张桌子。一个是大约 10,000 多行,如下所示:
表格1
col_1 date state ratio [50 more cols]
A 10/12 NY .5
A 12/05 MA NaN
.........
我有另一个大约 10 行的表,如下所示:
表 2
date state ratio
12/05 MA .9
12/03 MA .8
............
我需要根据表 2 中的日期和状态值设置表 1 中的比率。理想的解决方案是合并日期和状态,但这会创建两列:ratio_x 和 ratio_y
我需要一种方法将表 1 中的比率设置为表 2 中日期和状态都匹配的相应比率。表 1 中的比率可以被覆盖。
如果这可以通过合并正确完成,那么它也可以。
编辑:您可以将表 2 视为映射到特定状态值(因此表 2 中的所有状态在此示例中都是 MA)
解决方案
首先创建一个映射系列df2
:
s = df2.set_index(['date', 'state'])['ratio']
然后喂给df1
:
df1['ratio'] = df1.set_index(['date', 'state']).index.map(s.get)\
.fillna(df1['ratio'])
中的比率优先df2
。
推荐阅读
- typescript - “未捕获(承诺中):TypeError:webkitSpeechRecognition 不是构造函数
- python - PyQt5 dbus:强制信号参数的类型签名为字符串数组
- java - 使用 Spark Java 将数据帧写入外部分区 Hive 表时出现 Spark 异常
- java - 我的蛮力机器(使用 selenium 和 web 驱动程序使用 java 构建)速度太快,即使使用正确的登录信息也无法正确登录
- javascript - 语义 UI 中的表体反应没有表行导致 validateDomNesting 错误
- c++ - 没有 Emscripten,如何使用标准库将 C++ 编译为 WebAssembly
- javascript - 邮递员测试抛出错误:TypeError:无法读取未定义的属性“ProjectNumber”
- symfony - Symfony 3.4 - 将 parameters.yml/config_test.yml 中的变量注入测试用例
- r - 根据r中的另一列更改一列的值
- python - 类之外的函数是什么?