在当今数字化时代,数据呈爆炸式增长,企业和个人手中积累了海量的结构化数据,其中Excel和CSV文件是最为常见的数据存储形式。这些数据蕴含着丰富的信息,能为决策提供关键依据。然而,传统手动分析数据的方式在面对大量数据时效率低下,难以快速获取有价值的信息。随着人工智能技术的发展,借助AI进行Excel数据分析成为了一种高效且强大的手段。
由于AI存在上下文窗口的限制,无法一次性处理过长的内容,而且大语言模型本身在数学运算方面并不擅长,不能直接基于提供的结构化数据进行计算。所以,结合代码使用是最佳的解决办法。像ChatGPT、Claude这类工具,它们具备自动生成代码来分析数据的能力,甚至还能实现数据的分批处理。如果有编程能力,用户也可以选择自己编写代码完成数据的分析工作。
在利用AI分析结构化数据时,需要遵循一些关键原则。首先,提供数据结构而非完整数据。在给AI的提示(prompt)中,仅描述数据的结构,例如列名和数据类型,或者给出一个小的示例数据即可。避免直接粘贴完整数据,防止输入内容过长导致部分信息丢失。其次,要明确自身需求。清楚地告知AI想要对数据进行何种操作或分析,比如生成统计表、绘制图表,或是计算某些特定指标等。最后,基于明确的需求,让AI生成相应代码。这些代码能够处理完整的数据,并生成准确的结果,有效规避上下文窗口的限制。
以分析X平台推文数据为例,假设将X上的访问数据导出为csv或excel文件,文件中包含每一天的访问量等信息。把这份数据提交给ChatGPT(Claude同样适用),并提出需求:“分析我这一年的推文数据中,是哪个月访问量最大?哪一周访问量最大?哪一天访问量最大?”
ChatGPT在接到指令后,会先对数据进行抽样,以此了解数据的结构。随后,它会根据需求生成Python代码进行分析。首先,使用 pandas 库读取CSV文件,代码如下:
import pandas as pd
# Load the CSV file to analyze the data
file_path = '/mnt/data/account_overview_analytics (2).csv'
data = pd.read_csv(file_path)
# Display the first few rows to understand the structure of the data
data.head()
这段代码读取了指定路径下的CSV文件,并展示数据的前几行,方便查看数据结构。接下来,为了便于按月份和周进行数据分组,ChatGPT会将 Date 列转换为日期时间格式,并添加辅助列 Month 和 Week :
# Convert the 'Date' column to a datetime format
data['Date'] = pd.to_datetime(data['Date'], format='%a, %b %d, %Y')
# Add helper columns for month and week
data['Month'] = data['Date'].dt.to_period('M')
data['Week'] = data['Date'].dt.isocalendar().week
然后,通过分组和求和操作,分别计算每月和每周的访问量总和:
# Group by month and sum the impressions
monthly_impressions = data.groupby('Month')['Impressions'].sum()
# Group by week and sum the impressions
weekly_impressions = data.groupby('Week')['Impressions'].sum()
最后,找出访问量最大的日期,并提取相关结果:
# Find the day with the maximum impressions
max_day = data.loc[data['Impressions'].idxmax()]
# Extract the results
max_month = monthly_impressions.idxmax()
max_month_value = monthly_impressions.max()
max_week = weekly_impressions.idxmax()
max_week_value = weekly_impressions.max()
max_day_date = max_day['Date']
max_day_value = max_day['Impressions']
(max_month, max_month_value, max_week, max_week_value, max_day_date, max_day_value)
经过计算,得出的分析结果为:访问量最大的月份是2024年2月,总访问量为22,484,999;访问量最大的周是2024年第7周(2月中旬),总访问量为7,480,737;访问量最大的日期是2024年2月16日,访问量为2,753,640 。
Claude的分析过程与ChatGPT类似,但使用的是JavaScript语言。Claude首先读取并解析CSV文件:
// 读取并解析CSV文件
const fileContent = await window.fs.readFile('account_overview_analytics 2.csv', { encoding: 'utf8' });
import Papa from 'papaparse';
const parsedData = Papa.parse(fileContent, {
header: true,
dynamicTyping: true,
skipEmptyLines: true
});
const data = parsedData.data;
接着,分别按月份、周和天对数据进行分组,并计算相应的访问量:
// 按月份分组
const monthlyVisits = {};
data.forEach(row => {
const date = new Date(row.Date);
const monthKey = `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}`;
if (!monthlyVisits[monthKey]) {
monthlyVisits[monthKey] = 0;
}
monthlyVisits[monthKey] += row['Profile visits'] || 0;
});
// 找出访问量最大的月份
const maxMonthVisits = Object.entries(monthlyVisits)
.sort((a, b) => b[1] - a[1])[0];
console.log('月度访问量最高:', maxMonthVisits);
// 按周分组
const weeklyVisits = {};
data.forEach(row => {
const date = new Date(row.Date);
const weekNumber = getWeekNumber(date);
const weekKey = `${date.getFullYear()}-W${String(weekNumber).padStart(2, '0')}`;
if (!weeklyVisits[weekKey]) {
weeklyVisits[weekKey] = 0;
}
weeklyVisits[weekKey] += row['Profile visits'] || 0;
});
// 找出访问量最大的周
const maxWeekVisits = Object.entries(weeklyVisits)
.sort((a, b) => b[1] - a[1])[0];
console.log('周访问量最高:', maxWeekVisits);
// 找出访问量最大的天
const dailyVisits = data.map(row => ({
date: row.Date,
visits: row['Profile visits'] || 0
}));
const maxDayVisits = dailyVisits.sort((a, b) => b.visits - a.visits)[0];
console.log('日访问量最高:', maxDayVisits);
// 辅助函数:获取日期所在的周数
function getWeekNumber(date) {
const d = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));
const dayNum = d.getUTCDay() || 7;
d.setUTCDate(d.getUTCDate() + 4 - dayNum);
const yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));
return Math.ceil((((d - yearStart) / 86400000) + 1) / 7);
}
Claude得出的分析结果为:访问量最高的月份是2024年2月,总访问量达到了25,317次;访问量最高的周是2024年第7周(2月中旬),访问量为9,537次;访问量最高的单日是2024年2月16日(星期五),当天访问量达到了4,203次 。
通过上述案例可以看出,利用AI结合代码进行Excel数据分析具有显著的优势。一方面,大大提高了数据分析的效率。传统手动分析大量数据可能需要耗费数小时甚至数天的时间,而借助AI和代码,几分钟内就能完成复杂的分析任务。另一方面,分析结果更加准确和全面。AI能够处理海量数据,挖掘出人工可能忽略的潜在信息和规律,为决策提供更有力的支持。
在实际应用场景中,这种数据分析方式有着广泛的用途。在市场营销领域,企业可以利用AI分析客户购买数据,了解客户的购买习惯、偏好以及购买周期,从而制定更精准的营销策略,提高营销效果和客户满意度。在金融行业,通过分析交易数据、市场数据等,能够进行风险评估、投资决策等,降低风险,提高收益。在医疗领域,分析患者的病历数据、医疗检测数据等,有助于疾病的诊断、治疗方案的制定以及疾病的预测和预防。
然而,在使用AI进行Excel数据分析时,也需要注意一些问题。首先是数据安全和隐私问题。由于数据往往涉及到企业或个人的敏感信息,在将数据提交给AI进行分析时,要确保数据的安全性,防止数据泄露。其次,虽然AI能够生成代码进行分析,但对于一些复杂的分析需求,可能需要对生成的代码进行进一步的优化和调整,以确保分析结果的准确性和可靠性。此外,AI的分析结果也需要结合实际业务情况进行解读,不能盲目依赖,要充分发挥人的主观能动性,综合考虑各种因素,做出合理的决策。
随着人工智能技术的不断发展和完善,AI在Excel数据分析领域的应用前景将更加广阔。未来,AI可能会具备更强大的数据分析能力,能够直接处理复杂的结构化数据,无需借助代码。同时,AI与其他数据分析工具和技术的融合也将更加紧密,为用户提供更加便捷、高效、智能的数据分析解决方案。对于企业和个人来说,掌握利用AI进行Excel数据分析的技能,将在激烈的市场竞争中占据优势,更好地应对数字化时代带来的挑战和机遇。