我想从数据帧中的一列和其他列中获取匹配。下面是一个例子:
date tableNameFrom tableNameJoin attributeName
1 29-03-2019 film language [film.languageId, language.languageID]
2 30-03-2019 inventory rental [invetory.inventoryId, rental.filmId]
在上面的例子中,我想用attributeName在tablenameFrom和tablenameJoin之间进行匹配。但是,我想保留日期列。此处显示所需输出:
date tableName attributeName
1 29-03-2019 film languageId
2 29-03-2019 language languageID
3 30-03-2019 inventory inventoryId
4 30-03-2019 rental filmId
你知道我该怎么办吗?非常感谢。你知道吗
这可能不是您想要的,但会产生给定数据帧的预期输出:
它忽略了
tableNameFrome
和tableNameJoin
,并假设它们在attributeName
中给出。你知道吗这里有一种可能的方法avoids using ^{}
原始
DataFrame
步骤1-(1)使用
,
作为分隔符将attributeName
拆分为两个单独的列,(2)删除不需要的方括号([
或]
),(3)删除不需要的列第2步-最后,使用this SO post将列
tableName
和attributeName2
中的行拆分为单独的列细节
.set_index(['date']
-设置要作为DataFrame
的索引保留的列.stack()
-堆栈行.str.split('.', expand=True)
-呼叫结构拆分在周期(.
)上将这些单元格拆分为单独的列.stack()
-去掉NULL
值,所以再次调用stack
.unstack(-1)
unstack(-1)
(在最后一级取消堆栈)取消堆栈.reset_index(-1, drop=True)
-使用reset_index(-1)
消除多余的最后一级1这里是
.unstack(-1)
步骤之前的输出,并解释了为什么需要在unstack()
内使用-1
.unstack(-1)
中选择-1
我不明白你为什么需要中间的两根柱子,所以我把它们扔了。你知道吗
相关问题 更多 >
编程相关推荐