【发布时间】:2023-04-04 11:34:02
【问题描述】:
我有一本字典 d
d = {'word': [0,1,2,3,4,5,6], 'data':[2,3,4,5,6,7,8], 'mark': [1,4,5,2,5,6,7]}
和一个包含列表的数据框
df = (pd.DataFrame({data:[
['data', 'customer', 'mark', 'hello', 'spam', 'life'],
['from','the', 'word', 'mark', 'data'],
['hello', 'word', 'mark', 'data', 'the']]},
index = [0,1,2]))
在上面的 df 代码中,单词被分成 6 列,每列一个单词,但在我的实际示例中,它们都在一列中,并且是一个大列表。
我想将数据框每个列表中的单词与字典中的键匹配。如果该单词出现,则将字典中的相应值附加到数据框中的单词,如果没有,则从列表中省略该单词。
输出应该是这样的:
new_df = [[[data,2,3,4,5,6,7,8], [mark,1,4,5,2,5,6,7]],
[[word,0,1,2,3,4,5,6], [mark,1,4,5,2,5,6,7], [data, 2,3,4,5,6,7,8]],
[[word,0,1,2,3,4,5,6], [mark,1,4,5,2,5,6,7], [data, 2,3,4,5,6,7,8]]]
因为在第一个列表中,原始字典中没有 customer、hello、spam、life 等词。同样,在下一个列表中,我们没有from、the 等词...
实现这一目标的最佳方法是什么?
我做了这样的事情:
def checkkey(dict, key):
if key in dict.keys():
key.append(dict[key])
else:
print("Not present")
checkkey(d,a)
其中 d 是这本字典和 a ='data'
如何对列表中的所有单词和整个数据框执行此操作?
【问题讨论】:
标签: python list dictionary append