这个问题听起来好像以前有人问过,但无法应用或理解我的案例的解决方案,因此问…
我有一个数据帧Main
,看起来像这样,有两列topic, cat
,有我想要的新的需要的列Value
:
topic | cat | Value(needed col)
---------------------------------
top1 | cat1 | 0
---------------------------------
top2 | cat3 | 4
---------------------------------
top4 | cat4 | 1
虽然上面的Value
列的值位于另一个数据帧Values_df
中,其中一些80Rx30C的形式如下:
cat | top1 | top2 | top3 | top4...top30
-------------------------------------------
cat1 | 0 | 1 | 2 | 2
-------------------------------------------
cat2 | 1 | 1 | 1 | 1
-------------------------------------------
cat3 | 2 | 4 | 3 | 3
-------------------------------------------
cat4 | 5 | 2 | 1 | 1
.
.
cat80 | 2 | 7 | 4 |
我尝试转置Values_df
并左键连接,但由于我有多个列,所以无法理解,
我做的另一个尝试是在dictionary中创建一个字典,如下所示:
{'cat1': {'top1':0, 'top2':1, 'top3':2, 'top4':2}}
并绘制地图,但仍坚持绘制地图
有什么方法可以帮助我在Main
中添加Value
列
像下面这样的
melt
在values_df
之前,我们需要为values_df
快速创建列标题:在您的情况下,
range(1, 6)
应该是range(1, 31)
融化
values_df
:这将为我们提供以下信息:
然后,合并主值和值:
以下是最终结果:
您可以通过将} 熔化来从} 设置索引,并指定列} 生成)
Values_df
通过^{Values_df
进行映射,然后在topic
列和cat
列通过^{value
(列value
由^{然后,在} 创建的映射,如下所示:
Main
数据帧上,为每一行获取一个topic
和cat
元组,作为一个复合键,用于匹配由^{数据输入
已创建映射:
结果:
相关问题 更多 >
编程相关推荐