Python 3.x 将列表映射到dataframe列值
我有两张单子Python 3.x 将列表映射到dataframe列值,python-3.x,pandas,Python 3.x,Pandas,我有两张单子 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 4
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
我想在数据框中添加一个新列,以便列表中的颜色映射到数据框中显示的国家。
我的一种想法是在两个列表之间创建一个dict,然后将键值映射到数据框中的country列。使用由两个列表的zip
创建的字典:
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
由两个列表的zip
创建的字典使用:
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
是的,是地图:
df['color'] = df['Country'].map(pd.Series(COLORLIST, index=Countrylist))
输出:
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
是的,是地图:
df['color'] = df['Country'].map(pd.Series(COLORLIST, index=Countrylist))
输出:
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