检查点
pandas
学习使用 pandas 的基础知识,pandas 是 Python 中用于处理 DataFrame 的主要库。
根据其官方网站介绍,pandas(是的,小写“p”)是“一种基于 Python 编程语言构建的快速、强大、灵活且易于使用的开源数据分析与操作工具”。对于熟悉 Excel 的用户来说,pandas 是在 Python 中处理数据最直观的工具,因为 pandas 的 DataFrame 与 Excel 表格有许多相似之处。
1import pandas as pd 2 3a = pd.Series([10, 20, 30, 40]) 4print(a)
1import pandas as pd 2 3df = pd.read_csv('microsoft_stock.csv') 4 5print(df)
![三个 DataFrame 操作]
1import pandas as pd 2 3df = pd.read_csv('microsoft_stock.csv') 4df = df[df['Close'] >= 100] 5 6print(df)
1import pandas as pd 2 3df = pd.read_csv('microsoft_stock.csv') 4 5df = df[(df['Open'] >= 100) & (df['Close'] < 200)] 6# 行数据需同时满足两个条件 7 8print(df)
1import pandas as pd 2 3df = pd.read_csv('microsoft_stock.csv') 4 5df = df[(df['Open'] >= 100) | (df['Close'] < 200)] 6# 行数据只需满足任一条件 7 8print(df)
1import pandas as pd 2import datetime 3 4df = pd.read_csv('microsoft_stock.csv') 5 6# 修改数据类型 7df["Date"] = pd.to_datetime(df['Date'], format='%m/%d/%Y %H:%M:%S') 8 9# 第一种情况:Date 仅为普通列,非索引 10df1 = df[df['Date'] > datetime.date(2016, 1, 1)] 11print(df1) 12 13# 第二种情况:将 Date 设为 DataFrame 的索引 14df = df.set_index('Date') 15df2 = df.loc['2016-01-01':] 16print(df2)
1import pandas as pd 2 3df = pd.read_csv('microsoft_stock.csv') 4 5# 修改数据类型 6df["Date"] = pd.to_datetime(df['Date'], format='%m/%d/%Y %H:%M:%S') 7 8# 聚合操作 9df_agg = df.groupby("Open")["Close"].max() 10 11print(df_agg)
1import pandas as pd 2 3df = pd.read_csv('microsoft_stock.csv') 4 5# 修改数据类型 6df["Date"] = pd.to_datetime(df['Date'], format='%m/%d/%Y %H:%M:%S') 7 8# 按周进行聚合 9df_agg = df.groupby(pd.Grouper(key='Date', freq='W')).max() 10 11print(df_agg)
1import pandas as pd 2 3df = pd.read_csv('microsoft_stock.csv') 4 5# 修改数据类型 6df["Date"] = pd.to_datetime(df['Date'], format='%m/%d/%Y %H:%M:%S') 7 8# 多重聚合操作 9df_agg = df.groupby(pd.Grouper(key='Date', freq='W')).agg( 10 { 11 'Open': 'max', 12 'High': 'max', 13 'Low': 'min', 14 'Close': 'max', 15 'Volume': 'sum' 16 } 17 ) 18 19print(df_agg)
1import pandas as pd 2 3stocks = pd.read_csv('microsoft_stock.csv') 4weather = pd.read_csv('seattle_weather.csv') 5 6# 修改数据类型 7stocks["Date"] = pd.to_datetime(stocks['Date'], format='%m/%d/%Y %H:%M:%S').dt.date 8weather["date"] = pd.to_datetime(weather['date'], format='%Y-%m-%d').dt.date 9 10# 数据合并 11df = stocks.merge(weather, how='left', left_on='Date', right_on='date') 12 13print(weather) 14print(stocks) 15print(df)
Quiz
单选题
如何筛选名为 df 的 DataFrame 中 Date 列的数据,仅获取 2015 年的数据?
1 / 4