(1) 将 flights 和 airlines 进行连接,其中,最终结果应当保存flights 中的所有 观测值并且保存 airlines 中对应的观测值,并将结果命名为 flights_airlines (2) 选取 flights_airlines 中 name 中以”Inc.”结尾的观测值,并将选取出来的数 据框保存为新的flights_airlines (3) 对 flights_airlines 中 name 中元音字母的比重进行计算生成变量 prop_vowels, 并根据 prop_vowels 计算生成变量 vowel_gr,vowel_gr取 值为 1 如果 prop_vowels 大于等于 45%的,vowel_gr 取值为 2 如果 prop_vowels 低于 45%,然后统计 vowel_gr 每一组对应的观测值的数量。(提 示:元音指 aeiouAEIOU) (4) 在第 3 小问的基础上计算 vowel_gr 每一组里到达目的地机场的次数,并将每一 组前7的机场都显示出来
时间: 2024-03-03 17:53:28 浏览: 84
好的,以下是对你的每个问题的回答:
1. 连接 flights 和 airlines
可以使用以下代码将 flights 和 airlines 进行连接:
```
flights_airlines = pd.merge(flights, airlines, left_on='carrier', right_on='code')
```
2. 选取以”Inc.”结尾的观测值
可以使用以下代码选取以”Inc.”结尾的观测值并保存为新的数据框:
```
new_flights_airlines = flights_airlines[flights_airlines['name'].str.endswith('Inc.')]
```
3. 计算元音字母比重并生成变量 prop_vowels 和 vowel_gr
可以使用以下代码计算元音字母比重并生成变量 prop_vowels 和 vowel_gr:
```
vowels = 'aeiouAEIOU'
flights_airlines['prop_vowels'] = flights_airlines['name'].apply(lambda x: sum([1 for i in x if i in vowels])/len(x)*100)
flights_airlines['vowel_gr'] = np.where(flights_airlines['prop_vowels'] >= 45, 1, 2)
```
4. 计算 vowel_gr 每一组里到达目的地机场的次数并显示前7个机场
可以使用以下代码计算 vowel_gr 每一组里到达目的地机场的次数并显示前7个机场:
```
top_airports = 7
vowel_gr_counts = flights_airlines.groupby('vowel_gr')['dest'].value_counts().reset_index(name='count')
vowel_gr_counts = vowel_gr_counts[vowel_gr_counts['dest'].str.len() == 3] # 只保留3字母机场代码
vowel_gr_counts = vowel_gr_counts.pivot(index='vowel_gr', columns='dest', values='count').fillna(0)
vowel_gr_counts = vowel_gr_counts.apply(lambda x: x.astype(int))
for i in vowel_gr_counts.index:
print(f"vowel_gr group {i}:")
print(vowel_gr_counts.loc[i].nlargest(top_airports))
print()
```
希望这些代码能够帮助你解决问题!
阅读全文