栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

根据具有不同索引的参考数据帧连接数据帧中的特定列对

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

根据具有不同索引的参考数据帧连接数据帧中的特定列对

解决方案
使用

pd.get_dummies
pd.Dataframe.dot

df2.dot(pd.get_dummies(df1.stack()).T).sum(1, level=0)          H1  H2  H3item-000  AA  AT  TTitem-111  CC  CC  GC

说明

我知道我想使用点积。矩阵相乘的规则是,将

n x k
矩阵乘以
k x m
矩阵会得到一个
n x m
矩阵。查看最终结果,我
['item-000','item-111']
在索引中看到了,这就是我
n
n x k
矩阵。我看一下我的初步数据帧,
['item-000','item-111']
在列或索引中是否有一个?我做!

df2Alpha Bravo Charlie Deltaitem-000     A     A       T     Titem-111     C     C       G     C

那暗示我

k
['Alpha', 'Bravo', 'Charlie', 'Delta']
。好的,所以现在我必须寻找
k xm
。我仅有的其他数据框是
df1
,看起来像的东西
['Alpha', 'Bravo', 'Charlie', 'Delta']
在值中……
而不是 列或索引中。所以我必须到那里。我决定堆叠
df1
使用
pd.get_dummies

pd.get_dummies(df1.stack())Alpha  Bravo  Charlie  DeltaH1 FIRST       1      0        0      0   SECOND      0      1        0      0H2 FIRST       1      0        0      0   SECOND      0      0        0      1H3 FIRST       0      0        1      0   SECOND      0      0        0      1

现在我

['Alpha', 'Bravo', 'Charlie', 'Delta']
在专栏中!那是我的
k
。但我在索引中需要它。没问题,请使用移调。

pd.get_dummies(df1.stack()).TH1H2H3    FIRST SECOND FIRST SECOND FIRST SEConDAlpha       1      0     1      0     0      0Bravo       0      1     0      0     0      0Charlie     0      0     0      0     1      0Delta       0      0     0      1     0      1

对!现在我准备好了

dot

df2.dot(pd.get_dummies(df1.stack()).T) H1H2H3     FIRST SECOND FIRST SECOND FIRST SECONDitem-000     A      A     A      T     T      Titem-111     C      C     C      C     G      C

我们就快到了。我进行连接,

FIRST
SECOND
使用
pd.Dataframe.sum
指定的位置进行汇总,并按列对象的第一级分组。

df2.dot(pd.get_dummies(df1.stack()).T).sum(1, level=0)          H1  H2  H3item-000  AA  AT  TTitem-111  CC  CC  GC

设定

df1 = pd.Dataframe(dict(    FIRST=['Alpha', 'Alpha', 'Charlie'],    SECOND=['Bravo', 'Delta', 'Delta']), ['H1', 'H2', 'H3'])df2 = pd.Dataframe(dict(    Alpha=['A', 'C'],    Bravo=['A', 'C'],    Delta=['T', 'C'],    Charlie=['T', 'G']), ['item-000', 'item-111'])


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/659800.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号