我創建了一個包含不同課程的 df,并列出了價格。我需要為 dataframe 中的所有課程分配價格 - 例如,df 中的所有英語課程都應該有價目表中的第一個價格,所有金融課程應??該有價目表中的第二個價格等(順序無關緊要)。有什么建議?
import random
import pandas as pd
import numpy as np
courses_list = ['Programming', 'Data Science', 'Data Analytics', 'Business Management', 'English', 'Design', 'Finance']
courses = []
for i in range(500):
courses.append(random.choice(courses_list))
price = np.random.randint(50000, 100000, 7)
name = np.arange(500)
df = pd.DataFrame({'used_id':name,
'course_name':courses})
df
uj5u.com熱心網友回復:
dict comprehension與 一起使用Series.map:
# Create a dict with key as course_name and value as price
In [2358]: course_price = {i:price[c] for c, i in enumerate(courses_list)}
# Use `map` function to map the price for each course from dict to df
In [2360]: df['price'] = df.course_name.map(course_price)
In [2361]: df
Out[2361]:
used_id course_name price
0 0 Business Management 56022
1 1 Data Analytics 85224
2 2 Programming 64843
3 3 Business Management 56022
4 4 Data Science 65005
.. ... ... ...
495 495 Business Management 56022
496 496 Data Analytics 85224
497 497 English 95012
498 498 Business Management 56022
499 499 Data Analytics 85224
[500 rows x 3 columns]
uj5u.com熱心網友回復:
從課程串列和價格串列中創建一個字典并使用.map:
df['price'] = df['course_name'].map(dict(zip(courses_list, price)))
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/445132.html
下一篇:熊貓系列真值給出模棱兩可的結果
