我有两个列表
Countrylist = ['USA', 'INDIA', 'SINGAPORE','CHINA','MALAYSIA']
COLORLIST = ['#F1F326', '#D95969', '#D4526E', '#250591', '#FDBB2B']
我有一个包含4列的df:
Country Category AVGSPEED AVGVELOCITY
USA High 345 4634
INDIA Low 4363 435346
USA Low 345 346346
CHINA High 3462 23423
CHINA Medium 46346 46346
我想在数据框中添加新列,以使列表中的颜色映射到数据框中显示的国家/地区。 一种思考的方式是在两个列表之间创建一个字典,然后将键值映射到数据框中的国家/地区列。
答案 0 :(得分:1)
在两个列表的zip
创建的字典中使用Series.map
:
Countrylist = ['USA', 'INDIA', 'SINGAPORE','CHINA','MALAYSIA']
COLORLIST = ['#F1F326', '#D95969', '#D4526E', '#250591', '#FDBB2B']
df['Color'] = df['Country'].map(dict(zip(Countrylist, COLORLIST)))
print (df)
Country Category AVGSPEED AVGVELOCITY Color
0 USA High 345 4634 #F1F326
1 INDIA Low 4363 435346 #D95969
2 USA Low 345 346346 #F1F326
3 CHINA High 3462 23423 #250591
4 CHINA Medium 46346 46346 #250591
答案 1 :(得分:1)
是的,它是地图:
set
{
if(!Equals(value, _myProperty))
{
DoSomething();
}
Set(MyPropertyPropertyName, ref _myProperty, value);
}
输出:
df['color'] = df['Country'].map(pd.Series(COLORLIST, index=Countrylist))