如何用Pandas的melt函数将格鲁吉亚旅游数据多列表格转两列(保留Country列)
问题:将格鲁吉亚旅游数据从宽格式转长格式
我们已完成格鲁吉亚各地区旅游游客数据的获取与预处理,预处理后的宽格式数据如下:
Tbilisi Adjara A/R Imereti ... Kvemo Kartli Shida Kartli Country 0 314.835582 106.598779 239.673489 ... 67.557908 80.719441 Georgia 3 261.135399 89.256953 201.047910 ... 65.957077 62.978426 Georgia 7 250.610817 104.218447 217.913793 ... 69.989150 68.448837 Georgia 11 263.794270 102.331560 197.538537 ... 61.636733 71.306660 Georgia 15 272.579135 123.327306 190.075834 ... 68.220004 64.016689 Georgia [5 rows x 10 columns]
需求:将上述宽格式数据转换为包含Regions(地区)、Visitors(游客量)列,同时保留Country列的长格式结构,使用Pandas的melt函数实现。
解决方法
直接使用pd.melt()函数,通过参数指定保留列和转换后的列名,代码如下:
import pandas as pd # 假设data是预处理完成的DataFrame melted_data = pd.melt( data, id_vars=["Country"], # 指定转换时保留的列 var_name="Regions", # 设置地区列的名称 value_name="Visitors" # 设置游客量列的名称 ) print(melted_data.head())
参数说明
id_vars:指定转换过程中保持结构不变的列,这里保留Country列var_name:将原数据中作为列名的地区名称,映射为新列Regionsvalue_name:将原数据中各地区对应的游客数值,映射为新列Visitors
转换后的数据示例
Country Regions Visitors 0 Georgia Tbilisi 314.835582 1 Georgia Tbilisi 261.135399 2 Georgia Tbilisi 250.610817 3 Georgia Tbilisi 263.794270 4 Georgia Tbilisi 272.579135
内容的提问来源于stack exchange,提问作者data science
相关产品推荐
相关产品推荐

