所以我遇到的问题是,我不确定如何在函数内调用字典。
>>> play = pd.DataFrame(play)
>>> play
No Yes
0 Wednesday Monday
1 Thursday Tuesday
2 Saturday Friday
>>> days = 'Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'
>>> newdict = {}
>>> numbincrease = 0
>>> for i in days:
newdict[i] = numbincrease
numbincrease = numbincrease + 1
>>> print(newdict)
{'Monday': 0, 'Tuesday': 1, 'Wednesday': 2, 'Thursday': 3, 'Friday': 4, 'Saturday': 5}
所以我想将天数转换为数字,输出应该能够遍历所有列和所有行并读取字典并替换为程序中使用的字典中的适当值。输出应该是这样的,
>>> play
No Yes
0 2 0
1 3 1
2 5 4
我找了很多方法,但似乎都不行。我不知道如何调用函数来遍历每一列并将调用字典应用于该值并继续下一行或下一列。 请帮忙,谢谢
最佳答案
pd.DataFrame.applymap
可用于将函数应用于数据框中的每个值。在这种情况下,合适的函数是 dict.get
。
请注意,如下所示,您可以使用带有 enumerate
的字典推导式有效地将天数映射到整数。
days = ('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday')
daymap = {v: k for k, v in enumerate(days)}
res = df.applymap(daymap.get)
print(res)
No Yes
0 2 0
1 3 1
2 5 4
关于python - 使用python访问函数内部的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50965308/