我正在尝试用字典映射我的df列。我的字典包含元组作为值,我只想要元组的第一个元素。我该如何实现?
my_dict = {'foo': (1, 0.1)}
df['original_column'] = 'foo'
我到目前为止所得到的:
df['mapped column'] = (1, 0.1)
我想要的是:
df['mapped column'] = 1
任何想法 ?
使用Series.map
由新词典的词典理解创造了获得元组的第一个值:
df = pd.DataFrame({
'original_column':['foo','bar','baz']
})
my_dict = {'foo': (1, 0.1), 'bar':(2,0.5),'baz':(5,6)}
d = {k:v[0] for k, v in my_dict.items()}
df['mapped column'] = df['original_column'].map(d)
print (df)
original_column mapped column
0 foo 1
1 bar 2
2 baz 5
另一个解决方案是将map映射为map,并通过来选择元组的第一个值str[0]
,但是如果使用较大的DataFrame,性能会更差:
my_dict = {'foo': (1, 0.1), 'bar':(2,0.5),'baz':(5,6)}
df['mapped column'] = df['original_column'].map(my_dict).str[0]
print (df)
original_column mapped column
0 foo 1
1 bar 2
2 baz 5
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句