gpt4 book ai didi

python - 如何将一列的值与数据框中的另一列匹配

转载 作者:行者123 更新时间:2023-11-29 12:23:31 24 4
gpt4 key购买 nike

我想从数据框中的一列与其他列中获取匹配项。下面是一个例子:

  tableNameFrom   tableNameJoin   attributeName
1 film language [film.languageId, language.languageID]
2 inventory rental [invetory.inventoryId, rental.filmId]

在上面的例子中,我想用 attributeName 在 tablenameFrom 和 tablenameJoin 之间进行匹配。这里需要输出:

  tableName    attributeName
1 film languageId
2 language languageID
3 inventory inventoryId
4 rental filmId

最佳答案

我的解决方案只适用于 attributeName 列,因为从样本数据中可以得到所有需要输出的数据。

使用Series.str.split首先通过 ,,然后通过 DataFrame.stack reshape DataFrame并按拆分。:

df1 = (df['attributeName'].str.split(', ', expand=True)
.stack()
.str.split('.', expand=True)
.reset_index(drop=True))
df1.columns = ['tableName','attributeName']
print (df1)
tableName attributeName
0 film languageId
1 language languageID
2 invetory inventoryId
3 rental filmId

编辑:

如果值是列表,使用 DataFrame 构造函数:

print (type(df.loc[1, 'attributeName']))
<class 'list'>

df1 = (pd.DataFrame(df['attributeName'].values.tolist())
.stack()
.str.split('.', expand=True)
.reset_index(drop=True))
df1.columns = ['tableName','attributeName']
print (df1)
tableName attributeName
0 film languageId
1 language languageID
2 invetory inventoryId
3 rental filmId

关于python - 如何将一列的值与数据框中的另一列匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55772841/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com