【发布时间】:2021-08-27 11:59:58
【问题描述】:
我有一个名为 mcmc_samples 的 DataFrame,其中包含多个变量的 Markov-Chain-Monte-Carlo 样本
| deviance | K_1[1,1] | K_1[1,2] | K_1[1,3] | K_1[2,1] | K_1[2,2] | K_1[2,3] |
|---|---|---|---|---|---|---|
| 0.2 | 0.4 | 0.6 | 0.1 | 0.3 | 0.9 | 0.8 |
| ... | ... | ... | ... | ... | ... | ... |
列名由级别(K_1)、变量(逗号前括号中的第一个数字)和类别(逗号后括号中的第二个数字)组成。
我尝试重命名列名,使括号中的数字更有意义。为此,我想使用以下词典。
dict_var = {1: "variable_1", 2: "variable_2"}
dict_categ = {1: "item_1, 2: "item_2", 3: "item_3"}
我尝试使用正则表达式替换字符串
mcmc_samples.columns = mcmc_samples.columns.str.replace(r"(?<=,)(.*?)(?=\])",
mcmc_samples.columns.str.extract(r"(?<=,)(.*?)(?=\])")[0].map(dict_categ), regex=True)
但这给了我以下错误:
TypeError: repl 必须是字符串或可调用的
【问题讨论】:
标签: python regex pandas string rename