为什么df.index.map(dict)
不像df['column_name'].map(dict)
?
这是一个尝试使用index.map的小例子:
import pandas as pd
df = pd.DataFrame({'one': {'A': 10, 'B': 20, 'C': 30, 'D': 40, 'E': 50}})
map_dict = {'A': 'every', 'B': 'good', 'C': 'boy', 'D': 'does', 'E': 'fine'}
df
'''
one
A 10
B 20
C 30
D 40
E 50
'''
df['two'] = df.index.map(mapper=map_dict)
这引起了 TypeError: 'dict' object is not callable
给它喂lambda可以工作:
df['two'] = df.index.map(mapper=(lambda x: map_dict[x])); df
'''
one two
A 10 every
B 20 good
C 30 boy
D 40 does
E 50 fine
'''
但是,重置索引和列上的映射可以按预期工作,而不会产生抱怨:
df.reset_index(inplace=True)
df.rename(columns={'index': 'old_ndx'}, inplace=True) #so there's no index name confusion
df['two'] = df.old_ndx.map(map_dict); df
'''
old_ndx one two
0 A 10 every
1 B 20 good
2 C 30 boy
3 D 40 does
4 E 50 fine
'''
我没有回答您的问题…只是为您提供更好的解决方法。
使用to_series()
它们map
df = pd.DataFrame({'one': {'A': 10, 'B': 20, 'C': 30, 'D': 40, 'E': 50}})
map_dict = {'A': 'every', 'B': 'good', 'C': 'boy', 'D': 'does', 'E': 'fine'}
df['two'] = df.index.to_series().map(map_dict)
df
one two
A 10 every
B 20 good
C 30 boy
D 40 does
E 50 fine
映射或字典类型,一种键值对的映射关系存储结构。定义方式为mapping(_KeyType => _KeyValue)。键的类型允许除映射外的所有类型,如数组,合约,枚举,结构体。值的类型无限制。 映射可以被视作为一个哈希表,其中所有可能的键已被虚拟化的创建,被映射到一个默认值(二进制表示的零)。但在映射表中,我们并不存储键的数据,仅仅存储它的keccak256哈希值,用来查找值时使用。 因此,映射
map 翻译过来就是字典或者映射,可以把 map 看做是切片的升级版 切片是用来存储一组相同类型的数据的,map也是用来存储一组相同类型的数据的 在切片中我们可以通过索引获取对应的元素,在 map 中我们可以通过key获取对应的元素 切片的索引是系统自动生成的,从0开始递增,map 中的 key 需要我们自己指定 只要是可以做 ==、!= 判断的数据类型都可以作为 key(数值类型、字符串、数组、
我有一个数据帧,其中一列中具有值。我想将此 值替换为其他列的相同组合的“类别”的最大值。 示例:熊猫数据帧 我想将3中的值替换为唯一组合(1.2列组)此列的max()值。预期结果如下所示: 我尝试过的:我把1。2.列(“公司产品”)获取3的最大值()。列建立一个字典'类别'。(基于GroupBy结果到列表字典的思想) 我得到这个判决(显示每个组合的最大类别值): 现在我想用字典中每个组合的最大值替
问题内容: 假设我有一本看起来像这样的字典: 我想要一个看起来像这样的数据框: 有方便的方法吗?如果我尝试: 我得到一个数据框,其中每个元素都是一个列表。我需要的是一个多索引,其中每个级别对应于嵌套dict中的键,而行对应于列表中每个元素,如上所示。我认为我可以使用非常粗糙的解决方案,但我希望可能会有一些简单的事情。 问题答案: 熊猫希望MultiIndex值作为元组,而不是嵌套字典。最简单的方法
问题内容: 给定一个字典,我想提供一个函数。 有内置功能吗?还是我必须做 理想情况下,我只会写 要么 也就是说,对原始词典进行了突变还是创建副本对我来说都没有关系。 问题答案: 没有这样的功能;最简单的方法是使用dict理解: 在python 2.7中,请使用方法而不是节省内存。dict理解语法直到python 2.7才引入。 注意,列表上也没有这种方法。您将不得不使用列表推导或函数。 这样,您也
问题内容: 给定这样的字典: 如何将这张地图倒置即可: 问题答案: Python 3+: Python 2: