给出这样的字典:
my_map = {'a': 1, 'b': 2}
Run Code Online (Sandbox Code Playgroud)
如何反转此地图以获得:
inv_map = {1: 'a', 2: 'b'}
Run Code Online (Sandbox Code Playgroud)
编者注: __CODE__改为__CODE__避免与内置函数冲突,__CODE__.下面有些评论可能会受到影响.
我收到一个字典作为输入,并希望返回一个字典,其键将是输入的值,其值将是相应的输入键.价值观是独一无二
例如,说我的输入是:
a = dict()
a['one']=1
a['two']=2
Run Code Online (Sandbox Code Playgroud)
我希望我的输出是:
{1: 'one', 2: 'two'}
Run Code Online (Sandbox Code Playgroud)
为了澄清我希望我的结果等同于以下内容:
res = dict()
res[1] = 'one'
res[2] = 'two'
Run Code Online (Sandbox Code Playgroud)
任何巧妙的Pythonian方式来实现这一目标?
谢谢
假设我有一本字典:
dict = {"1" : "A", "2" : "B" , "3" : "C"}
Run Code Online (Sandbox Code Playgroud)
和一个数据框
df = pd.DataFrame()
df["ID"] = pd.Series(["A","B","C"])
df["Desc"] = pd.Series(["Fruits","Vegs","Meat"])
Run Code Online (Sandbox Code Playgroud)
数据框将如下所示:
我将如何df["ID"]用字典键替换列中的值,以便我使用1,2,3indf["ID"]而不是A,B,C?
我希望能够计算数据帧中列组的中位数.我有以下示例数据帧.对于我的实际数据帧,列数,列和组的名称是动态的,因为它取决于用户输入.
raw_data= {'a':['g1','g2','g3','g4','g5'],'b':[10,11,12,13,14],'c':[5,6,7,8,9],'d':[112,1,0,9,8],'e':[6,7,8,0,9],'f':[0,1,6,7,8],'g':[9,8,6,5,4]}
mydf= pd.DataFrame(raw_data)
newdf= mydf.set_index('a')
Run Code Online (Sandbox Code Playgroud)
我有另一个字典,我存储我的列的组信息
gp_dict= {'gp1':['b','c','d'],'gp2':['e','f','g']}
Run Code Online (Sandbox Code Playgroud)
当前数据帧:
b c d e f g
a
g1 10 5 112 6 0 9
g2 11 6 1 7 1 8
g3 12 7 0 8 6 6
g4 13 8 9 0 7 5
g5 14 9 8 9 8 4
Run Code Online (Sandbox Code Playgroud)
我的代码应该获得每个组的中位数,并且如果任何组的中位数大于8,则保留行.
期望的输出:
b c d e f g
g1 10 5 112 6 0 9
g4 13 8 9 0 7 5
g5 14 9 8 9 …Run Code Online (Sandbox Code Playgroud)