我想从数据框中的一列与其他列中获取匹配项。下面是一个例子:
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 列。这里需要输出:
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
知道我该怎么做吗?谢谢。
最佳答案
这可能不是您想要的,但会为给定的数据帧产生预期的输出:
(df.set_index('date').attributeName.apply(pd.Series).stack()
.reset_index().drop('level_1', axis=1).set_index('date')[0]
.str.split('.').apply(pd.Series)
)
它忽略 tableNameFrome
和 tableNameJoin
并假定它们在 attributeName
中给出。
+----+------------+----------+-------------+
| | date | 0 | 1 |
|----+------------+----------+-------------|
| 0 | 29-03-2019 | film | languageId |
| 1 | 29-03-2019 | language | languageID |
| 2 | 30-03-2019 | invetory | inventoryId |
| 3 | 30-03-2019 | rental | filmId |
+----+------------+----------+-------------+
关于python - 如何在数据框中的列之间进行匹配并保留另一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55787042/