python - 使用python访问函数内部的字典

标签 python pandas dictionary dataframe

所以我遇到的问题是,我不确定如何在函数内调用字典。

>>> 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/

相关文章:

javascript - 将 JS 对象提取为 JSON

python - 使用 PIL 的简单图像指标

python - 如何使用 MultiIndex 的相关级别对 MultiIndex DataFrame 进行切片

python - 在 Python 中删除停用词

python - 有什么办法可以杀死一个线程吗?

python - 创建保存列名和另一个数据框的相应值的 df

Python Pandas : Breaking a list or series into columns of different sizes

python - 将复杂字典放入返回队列时,多处理进程不加入

python - 多行字典: Replace the key as per a word in value

c# - 从 List<Dictionary<string, string>> 获取唯一值