引言
在数据分析领域,Pandas 是一个功能强大的 Python 库,它为数据清洗、转换和分析提供了丰富的工具。DataFrame 是 Pandas 中最核心的数据结构,它类似于 R 中的数据框,是进行数据分析和时间序列分析的基础。本文将带你轻松上手 Pandas DataFrame,并介绍如何进行时间序列分析。
了解 Pandas DataFrame
什么是 DataFrame?
DataFrame 是一个表格型的数据结构,它包含行和列,类似于 Excel 表格或 SQL 表。每个列可以包含不同类型的数据,如数值、字符串或日期。
创建 DataFrame
import pandas as pd
# 使用字典创建 DataFrame
data = {'Name': ['Tom', 'Nick', 'John', 'Alice'],
'Age': [20, 21, 19, 18],
'City': ['New York', 'London', 'Paris', 'Berlin']}
df = pd.DataFrame(data)
print(df)
DataFrame 的基本操作
- 查看数据:
df.head(),df.tail() - 选择列:
df['Name'],df[['Name', 'Age']] - 选择行:
df.iloc[0:2],df.loc[df['Age'] > 20] - 插入数据:
df.loc[2] = {'Name': 'Bob', 'Age': 22, 'City': 'Tokyo'} - 删除数据:
df.drop('Name', axis=1)
时间序列分析入门
什么是时间序列?
时间序列是一组按时间顺序排列的数据点,通常用于分析数据随时间的变化趋势。
Pandas 中的时间序列
Pandas 提供了 Timestamp 和 Period 两种时间序列类型。
import pandas as pd
# 创建时间戳
timestamp = pd.Timestamp('2021-01-01 12:00:00')
# 创建时间序列
time_series = pd.Series([1, 2, 3, 4, 5], index=[timestamp + pd.Timedelta(hours=i) for i in range(5)])
print(time_series)
时间序列分析常用方法
- 移动平均:
df.rolling(window=3).mean() - 指数平滑:
df.ewm(span=3, adjust=False).mean() - 自相关:
df.corrwith(df.shift(1))
实战案例
假设我们有一组股票价格数据,我们需要分析其趋势和周期性。
import pandas as pd
# 读取数据
data = {'Date': pd.date_range(start='2021-01-01', periods=100, freq='D'),
'Stock Price': [100, 101, 102, 103, 104, 105, 106, 107, 108, 109]}
df = pd.DataFrame(data)
# 计算移动平均
df['Moving Average'] = df['Stock Price'].rolling(window=5).mean()
# 绘制趋势图
df.plot(x='Date', y=['Stock Price', 'Moving Average'])
总结
通过本文的学习,你现在已经掌握了 Pandas DataFrame 的基本操作和时间序列分析的基本方法。希望这些知识能帮助你更好地进行数据分析。在实际应用中,请不断尝试和探索,积累经验,不断提高自己的数据分析能力。
