# Create Date: 2024/9/6 17:03 # About context: test panda import pandas as pd # 场景一:数据清洗 # 假设我们有一个包含缺失值和重复值的CSV文件,我们需要清洗数据以便后续分析。 # 读取数据 dataFrame = pd.read_csv('d:\\闸站采集数据表.csv', encoding='GBK') # 显示前五行数据 print("dataTtype=",type(dataFrame)) print(dataFrame.head()) # print(dataFrame.columns.values) print("dataFrame.dtypes=",dataFrame.dtypes) print("dataFrame.keys()=",dataFrame.keys()) print("dataFrame[‘采集时间’][0]=",dataFrame['采集时间'][0]) # print(dataFrame.tail()) # 处理缺失值 dataFrame = dataFrame.dropna() # 删除含有缺失值的行 # dataFrame = dataFrame.fillna(0) # 或者将缺失值填充为0 # 去除重复值 dataFrame = dataFrame.drop_duplicates() # 显示处理后的数据 # print(dataFrame.head()) data1={'id':[1,2,3,4], 'name':['桔子','香蕉','苹果','桃子'], 'price':[10,20,10,18], 'weight':[100,150,50,80], } pdData= pd.DataFrame(data1) print("===========================================") print(pdData) # pdData.sort_values(by=['price'],ascending=False) print("-----------------------------------------") newDF=pdData.sort_values(['price','weight'],ascending=True) print(newDF) pdData['price_per_gram']=pdData['price']/pdData['weight'] newDF2=pdData.sort_values(['price','price_per_gram'],ascending=True) print(newDF2) print('*****************************') newDF2.set_index(['id','name'],inplace=True) print(newDF2) print('&&&&&&&&&&',newDF2.columns.values) # newD1=pd.Series([10,14,19,33],index=[1,2,3,4],name='test') newD1=pd.Series([10,14,19,33,None],index=list('12345'),name='test') print(type(newD1)) print(newD1) print(newD1.get('2')) print("===========================================") # 场景二:数据转换 # 假设我们有一个数据集,其中包含多种数据类型的列。我们需要将特定的列转换为适当的数据类型,以便进行正确的计算。 # 示例数据 data = { 'A': ['1', '2', '3'], 'B': ['4.1', '5.2', '6.3'], 'C': ['2023-01-01', '2023-02-01', '2023-03-01'] } df = pd.DataFrame(data) # 数据类型转换 df['A'] = df['A'].astype(int) df['B'] = df['B'].astype(float) df['C'] = pd.to_datetime(df['C']) # 显示转换后的数据类型 print(df.dtypes) # 场景三:数据合并 # 假设我们有两个数据集,我们需要将它们合并在一起,以便进行综合分析。 # 示例数据 data1 = { 'key': ['A', 'B', 'C'], 'value1': [1, 2, 3] } data2 = { 'key': ['A', 'B', 'D'], 'value2': [4, 5, 6] } df1 = pd.DataFrame(data1) df2 = pd.DataFrame(data2) # 数据合并 merged_data = pd.merge(df1, df2, on='key', how='inner') # 显示合并后的数据 print(merged_data) # 场景四:数据分组与聚合 # 假设我们有一个销售数据集,我们需要按地区和月份计算每个地区的总销售额。 # 示例数据 data = { '地区': ['东区', '西区', '南区', '北区', '东区', '西区'], '月份': ['2023-01', '2023-01', '2023-01', '2023-01', '2023-02', '2023-02'], '销售额': [100, 200, 150, 300, 400, 250] } df = pd.DataFrame(data) # 数据分组与聚合 grouped_data = df.groupby(['地区', '月份']).sum().reset_index() # 显示分组与聚合后的数据 print(grouped_data) # 场景五:数据筛选 # 假设我们有一个包含多列数据的数据集,我们需要筛选出符合特定条件的行。 # 示例数据 data = { '姓名': ['张三', '李四', '王五', '赵六'], '年龄': [23, 45, 12, 35], '城市': ['北京', '上海', '广州', '深圳'] } df = pd.DataFrame(data) # 筛选年龄大于30岁的行 filtered_data = df[df['年龄'] > 30] # 显示筛选后的数据 print(filtered_data) # 场景六:数据透视表 # 假设我们有一个包含销售数据的数据集,我们需要生成一个透视表,以便更好地观察数据。 # 示例数据 data = { '产品': ['A', 'B', 'A', 'B', 'A', 'B'], '销售员': ['张三', '李四', '王五', '赵六', '张三', '李四'], '销售额': [100, 200, 150, 300, 400, 250] } df = pd.DataFrame(data) # 生成透视表 pivot_table = pd.pivot_table(df, values='销售额', index=['产品'], columns=['销售员'], aggfunc='sum', fill_value=0) # 显示透视表 print(pivot_table) # 场景七:时间序列分析 # 假设我们有一个时间序列数据集,我们需要进行时间序列分析,比如计算移动平均值。 # 示例数据 data = { '日期': pd.date_range(start='2023-01-01', periods=10, freq='D'), '销售额': [100, 200, 150, 300, 400, 250, 300, 350, 200, 150] } df = pd.DataFrame(data) # 设置日期为索引 df.set_index('日期', inplace=True) # 计算7天移动平均值 df['移动平均'] = df['销售额'].rolling(window=7).mean() # 显示结果 print(df) # 场景八:数据重塑 # 假设我们有一个长格式的数据集,我们需要将其重塑为宽格式,以便于分析。 # 示例数据 data = { '日期': ['2023-01-01', '2023-01-01', '2023-01-02', '2023-01-02'], '变量': ['A', 'B', 'A', 'B'], '值': [10, 20, 30, 40] } df = pd.DataFrame(data) # 重塑数据 reshaped_data = df.pivot(index='日期', columns='变量', values='值') # 显示重塑后的数据 print(reshaped_data) # 场景九:缺失值处理 # 假设我们有一个包含缺失值的数据集,我们需要填充这些缺失值以便进行后续分析。 # 示例数据 data = { 'A': [1, 2, None, 4], 'B': [None, 2, 3, 4], 'C': [1, None, None, 4] } df = pd.DataFrame(data) # 填充缺失值 # df.fillna(method='ffill',inplace=True) # 向前填充 df.bfill() # 向前填充 新版本的写法 # 显示填充后的数据 print(df) # 场景十:数据合并与连接 # 假设我们有两个数据集,我们需要通过特定的键进行连接。 # 示例数据 left_data = { 'key': ['K0', 'K1', 'K2', 'K3'], 'A': ['A0', 'A1', 'A2', 'A3'], 'B': ['B0', 'B1', 'B2', 'B3'] } right_data = { 'key': ['K0', 'K1', 'K2', 'K4'], 'C': ['C0', 'C1', 'C2', 'C4'], 'D': ['D0', 'D1', 'D2', 'D4'] } left = pd.DataFrame(left_data) right = pd.DataFrame(right_data) # 数据连接 result = pd.merge(left, right, how='left', on='key') # 显示连接后的数据 print(result)