这看起来应该是一个常见的用例,但我没有找到任何好的指导。我有一个可行的解决方案,但是我宁愿使用向量化查找,而不是使用Pandasapply()
函数。在
下面是我正在做的一个例子:
import pandas as pd
example_dict = {
"category1":{
"field1": 0.0,
"filed2": 5.0},
"category2":{
"field1": 5.0,
"field2": 8.0}}
d = {"ids": range(10),
"category": ["category1" if x % 2 == 0 else "category2" for x in range(10)]}
df = pd.DataFrame(d)
# The operation I am trying to vectorize
df['category_data'] = df.apply(lambda row: example_dict[row['category']], axis=1)
在最后一行中,您可以看到我使用apply()
函数执行字典查找的位置。我的直觉告诉我应该有一种方法来引导它。我可能错了,但我也想知道。我经常遇到这样的情况:我需要在字典中查找信息并将其作为列aDataFrame
添加。在
您可以从} 这两个数据帧
example_dict
创建第二个数据帧,然后^{将字典值分隔到列
^{pr2}$通过使用
map
如果你需要把它们分成不同的列
^{pr2}$或者
相关问题 更多 >
编程相关推荐