20. 案例分析:利用世界银行人口数据集进行东亚地区人口增长研究

如何使用AI提示词和Python代码分析大陆洲人口数据

引言 在现代商业分析中,数据的收集、处理和可视化是至关重要的。尤其是当你需要从复杂的数据集中提取有用的信息时,AI提示词和Python代码可以显著提高效率。本文将展示如何通过AI提示词生成Python代码来加载和分析大陆洲人口数据,并通过VegaLite进行可视化。我们将深入探讨AI提示词的设计和使用,帮助您更好地理解如何优化数据分析过程,尤其是针对不熟悉代码的商业分析师。 问题描述 在进行全球人口趋势分析时,数据可视化是帮助我们从复杂数据中提取有用信息的关键工具。然而,在处理涉及多个大陆洲的全球人口数据时,现有的图表展示方式仍然存在一些问题。特别是在涉及30个大陆洲分区的情况...…
20. 案例分析:利用世界银行人口数据集进行东亚地区人口增长研究
分享此内容

引言

在现代商业分析中,数据的收集、处理和可视化是至关重要的。尤其是当你需要从复杂的数据集中提取有用的信息时,AI提示词和Python代码可以显著提高效率。本文将展示如何通过AI提示词生成Python代码来加载和分析大陆洲人口数据,并通过VegaLite进行可视化。我们将深入探讨AI提示词的设计和使用,帮助您更好地理解如何优化数据分析过程,尤其是针对不熟悉代码的商业分析师。

Screenshot%20from%202025-04-25%2009-53-48

问题描述

在进行全球人口趋势分析时,数据可视化是帮助我们从复杂数据中提取有用信息的关键工具。然而,在处理涉及多个大陆洲的全球人口数据时,现有的图表展示方式仍然存在一些问题。特别是在涉及30个大陆洲分区的情况下,颜色的过多使用使得图表变得难以解读。每个大陆洲都有不同的颜色,这不仅增加了视觉的复杂性,还使得图表难以突出显示我们关注的关键区域——东亚。此外,现有的图表未能有效地对东亚和其他大陆洲之间的差异进行比较,这使得在分析时很难将东亚与其他大陆洲的趋势作直接对比。

解决思路

在实际应用中,我们需要将重点放在东亚上,并通过将其他大陆洲的数据进行分组,简化视觉信息。这不仅可以减少颜色的使用,还能帮助我们更加清晰地观察东亚与其它洲的人口变化趋势。因此,本文将对现有图表进行修改,聚焦东亚并将其他大陆洲合并为一个组。这样一来,图表将更加简洁易懂,并且使得东亚的趋势线更加突出,便于我们进行深入分析和比较。

Untitled-2025-04-24-03

visualization%20%2816%29

一、理解AI提示词和Python代码的关系

在数据分析中,AI提示词不仅是引导生成代码的指令,更是帮助AI理解和执行任务的关键。提示词的设计至关重要,因为它直接影响生成代码的准确性和可用性。在本示例中,我们将使用AI提示词来加载和处理大陆洲的人口数据,并通过Python代码实现数据的处理和可视化。

AI提示词的作用

AI提示词在代码生成过程中扮演着指导性角色。例如,提示词要求AI加载一个Excel文件并读取数据,我们需要明确描述数据结构、所需的操作以及期望的输出格式。这些细节将帮助AI准确生成符合要求的Python代码。

二、数据加载与处理:从Excel到DataFrame

首先,我们将加载并处理来自Excel文件的数据。假设我们的数据包含大陆洲人口信息,包括年份和人口数量。这个Excel文件可从前文工作最后生成的df3数据集导出。我们已上传至附录中的文件19.第3部分、大陆洲人口.xlsx

Screenshot%20from%202025-04-24%2009-50-48

Screenshot%20from%202025-04-24%2009-59-07

导出DataFrame为Excel

任何Pandas DataFrame变量都可以导出到Python内存文件系统中,作为Excel文件。除了即时浏览表格内容,用户也可以随时下载到本地。

Untitled-2025-04-24-02

数据示例

在Excel文件中,我们有如下数据:

大陆洲 Year Population
东亚 1960 801286908
东亚 1961 796492093
东南亚 1960 215032439
东南亚 1961 221029459

通过AI提示词,我们要求AI生成代码来读取这个Excel文件,并将数据存储为Pandas DataFrame。

AI提示词:加载Excel文件并读取数据

我需要从内存文件系统根目录“/”加载一个名为“19.第3部分、大陆洲人口.xlsx”的Excel文件。该文件包含从1960年到2023年各个大陆洲的人口数据,其中第一列是大陆洲名称、第二列是具体年份的人口数量。表格示例参看《大陆洲人口数据示例》。请为pyodide环境生成相应的python代码,使用pandas库读取这个Excel文件,并将其存储到一个名为df的DataFrame中,在代码中注释说明DataFrame的数据结构。

目的

这个提示词的主要目的是要求AI生成代码,以从指定路径加载Excel文件并使用Pandas的read_excel方法将其读取为DataFrame对象。这个步骤将Excel文件中的数据转化为Python中的数据结构,方便后续处理。

代码解读

AI根据提示词生成了以下Python代码:

df = pd.read_excel('/19.第3部分、大陆洲人口.xlsx')

"""
生成的DataFrame数据结构说明:
列1:大陆洲 (dtype: object)
    存储大陆洲名称的字符串,如'东亚'、'东南亚'
列2:Year (dtype: int64)
    存储年份的整型数字,范围从1960到2023
列3:Population (dtype: int64 或 float64)
    存储对应年份的人口数量,根据数据量级可能为整数或浮点数
"""

这行代码从内存文件系统中读取了名为“19.第3部分、大陆洲人口.xlsx”的Excel文件,并将其加载到名为df的DataFrame中。接下来,它还注释了DataFrame的数据结构,确保我们对加载的数据有清晰的理解。

三、人口数据的进一步处理

接下来,我们需要根据不同的需求对数据进行处理。比如,合并东亚和其他大陆洲的数据,计算不同大陆洲的总人口数量。

处理步骤:东亚与其他洲的合并

通过AI提示词,我们要求AI将东亚与其他洲的数据分开,后者所有非东亚的大陆洲合并为一个“其它洲”类别。

AI提示词:处理东亚与其他洲的人口数据

我需要从df中将除了东亚之外的所有大陆洲(即“其它洲”)的人口数量加起来,与东亚的数据一起,存储到一个名为df2的DataFrame中。请生成Python代码,在代码中注释说明df2的数据结构。

目的

此提示词要求将东亚的数据与“其它洲”进行合并,后者是指所有非东亚的大陆洲的人口总和。通过对“其它洲”进行分组和求和,我们得到了一个新的DataFrame,命名为df2

代码解读

AI根据提示词生成了以下Python代码:

df_east_asia = df[df['大陆洲'] == '东亚'].copy()
df_other = df[df['大陆洲'] != '东亚']
other_sum = df_other.groupby('Year', as_index=False)['Population'].sum()
other_sum['大陆洲'] = '其它洲'
df2 = pd.concat([df_east_asia, other_sum], ignore_index=True)
  • df[df['大陆洲'] == '东亚']:筛选出东亚的数据,并保留原始数据结构。
  • df[df['大陆洲'] != '东亚']:筛选出除了东亚之外的其它大陆洲的数据。
  • groupby('Year', as_index=False)['Population'].sum():对其它洲的数据按年份进行分组,并计算每个年份的总人口。
  • df2:将东亚的数据和其它洲的总和数据合并为一个新的DataFrame。

注释详细说明了df2的结构,即包含“大陆洲”列(东亚或其它洲)、年份(Year)以及对应的人口数量(Population)。

四、使用VegaLite进行数据可视化

数据处理完成后,我们需要将这些数据可视化,以便更直观地展示人口趋势。VegaLite是一种声明式的可视化语言,适合用于快速生成交互式图表。

绘制人口趋势折线图

通过AI提示词,我们要求AI生成VegaLite的JSON代码,绘制从1960年到2023年间,各大陆洲人口趋势的折线图。

AI提示词:绘制人口趋势图

我已经完成了人口数据的加载和处理。现在,我想使用VegaLite语言绘制一个折线图,展示从1960年到2023年大陆洲的人口趋势线。x轴表示年份(Year),y轴表示人口数量(Population),并根据大陆洲名称进行颜色区分。数据来自df2变量。请生成相应的VegaLite JSON代码。

目的

这个提示词要求生成VegaLite的JSON代码,用于绘制一个折线图,展示从1960年到2023年之间,各大陆洲的人口趋势。x轴为年份,y轴为人口数量,并且不同大陆洲使用不同的颜色表示。

代码解读

AI生成的VegaLite JSON代码如下:

{
  "data": {
    "values": "df2"
  },
  "mark": {
    "type": "line",
    "strokeWidth": 3
  },
  "encoding": {
    "x": {
      "field": "Year",
      "type": "quantitative"
    },
    "y": {
      "field": "Population",
      "type": "quantitative"
    },
    "color": {
      "field": "大陆洲",
      "type": "nominal",
      "scale": {"scheme": "category10"}
    }
  }
}
  • mark: line:指定图表类型为折线图。
  • x: field: Year:设置x轴为年份(Year),并指定数据类型为“quantitative”(定量)。
  • y: field: Population:设置y轴为人口数量(Population),也为“quantitative”类型。
  • color: field: 大陆洲:根据大陆洲字段对折线图进行颜色区分,使用category10颜色调色板。

这段代码生成的折线图将展示1960到2023年各大陆洲的人口趋势,并通过不同的颜色区分各大陆洲。VegaLite的强大功能可以轻松实现数据的可视化。

visualization%20%2815%29

五、计算人口变化量

为了使图表更具可比性,我们进一步计算每年相对于1960年的人口差异。

AI提示词:计算人口变化量

我需要对df2进一步处理(参看《东亚和其它洲的人口统计》),以1960年的人口为基数,计算每年的差别。请生成Python代码,将结果存储到一个名为df3的DataFrame中,在代码中注释说明df3的数据结构。

目的

该提示词要求计算相对于1960年的人口变化量。通过每年的数据与1960年的人口数量进行比较,可以得到各年份的人口变化量,存储到一个名为df3的DataFrame中。

代码解读

AI生成的Python代码如下:

df3 = df2.sort_values(['大陆洲', 'Year']).copy()
df3['Difference'] = df3.groupby('大陆洲')['Population'].transform(lambda x: x - x.iloc[0])
df3 = df3[['大陆洲', 'Year', 'Difference']].reset_index(drop=True)
  • df2.sort_values(['大陆洲', 'Year']):按大陆洲和年份对数据进行排序,确保每个大陆洲的数据按年份排列。
  • transform(lambda x: x - x.iloc[0]):通过transform方法计算每年人口与1960年(即每组数据的第一个值)之间的差异。
  • Difference:新的列,表示每年相对于1960年的人口变化量。

注释说明了df3的结构,包括“大陆洲”(大陆洲名称)、“Year”(年份)和“Difference”(相对于1960年的人口差异)。

通过计算每年相对于1960年的人口差异,我们可以更清晰地展示各大陆洲的增长趋势。

六、绘制人口变化图表

接着,生成VegaLite的JSON代码,绘制以1960年为基数的人口变化量折线图。

AI提示词:绘制人口变化量图

我已经完成了人口数据的加载和处理。现在,我想使用VegaLite语言绘制一个折线图,展示从1960年到2023年大陆洲的人口趋势线(以1960年为基数)。x轴表示年份(Year),y轴表示人口变化量(Difference),自动转换为百万/十亿单位,并根据大陆洲名称进行颜色区分,给每条趋势线增加一个标注。数据来自df3变量。请生成相应的VegaLite JSON代码。

目的

这个提示词要求绘制一个折线图,展示以1960年为基数的各大陆洲人口变化量。图表应具备标注功能,能够帮助用户快速识别每条趋势线所代表的大陆洲。

代码解读

AI生成的VegaLite JSON代码如下:

{
  "data": {
    "values": "df3"
  },
  "layer": [
    {
      "mark": {
        "type": "line",
        "strokeWidth": 2
      },
      "encoding": {
        "x": {
          "field": "Year",
          "type": "quantitative"
        },
        "y": {
          "field": "Difference",
          "type": "quantitative"
        },
        "color": {
          "field": "大陆洲",
          "type": "nominal",
          "scale": {"scheme": "category10"}
        }
      }
    },
    {
      "mark": {
        "type": "text",
        "align": "left",
        "dx": 8,
        "fontSize": 12,
        "fontWeight": "bold"
      },
      "encoding": {
        "x": {"field": "Year", "type": "quantitative"},
        "y": {"field": "Difference", "type": "quantitative"},
        "text": {"field": "大陆洲"},
        "color": {"field": "大陆洲", "type": "nominal"}
      },
      "transform": [{"filter": "datum.Year == 2023"}]
    }
  ]
}
  • layer: 该代码使用VegaLite的图层(layer)功能,结合折线图和文本标注,以便清晰地展示每条趋势线并进行标注。
  • text: 为每条趋势线添加文本标注,显示大陆洲的名称。

visualization%20%2816%29

七、总结

本文通过一系列AI提示词和Python代码,展示了如何从Excel中加载并处理大陆洲人口数据,并使用VegaLite生成人口趋势图和变化图。AI提示词的精确设计对于生成高质量代码至关重要,它不仅可以加速数据处理过程,还能帮助商业分析师更直观地理解数据。

通过这些工具,商业分析师可以更高效地进行数据分析和可视化,从而为决策提供有力支持。如果你希望深入了解更多关于AI提示词和数据分析的技巧,欢迎继续关注相关内容!

我们在附录中提供了对应本文工作的交互式文档,您可以用自己的浏览器打开后运行提示词,体会五个提示词流程完成从数据到信息的自动化步骤。

Screenshot%20from%202025-04-25%2009-53-48