pandas 基本操作
Posted yoyo1216
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pandas 基本操作相关的知识,希望对你有一定的参考价值。
1.
import pandas as pd import numpy as np df1 = pd.DataFrame(np.arange(12).reshape(3, 4)) df2 = pd.DataFrame(np.arange(20).reshape(4, 5)) print(df1) print(df2) print(df1.add(df2, fill_value=1)) # 加运算 fill_value指定填充值,未对齐的数据将和填充值做运算 print(df1.sub(df2, fill_value=1)) # 减运算 fill_value指定填充值,未对齐的数据将和填充值做运算 print(df1.mul(df2, fill_value=1)) # 乘运算 fill_value指定填充值,未对齐的数据将和填充值做运算 print(df1.div(df2)) # 除运算 fill_value指定填充值,未对齐的数据将和填充值做运算 print(df1.truediv(df2)) # 除运算 fill_value指定填充值,未对齐的数据将和填充值做运算 print(df1.floordiv(df2)) # 向下取整除法 fill_value指定填充值,未对齐的数据将和填充值做运算 print(df1.mod(df2)) # 模运算 fill_value指定填充值,未对齐的数据将和填充值做运算 print(df1.pow(df2)) # 幂运算 fill_value指定填充值,未对齐的数据将和填充值做运算 DataFrame = pd.DataFrame(np.arange(20).reshape(4, 5)) DataFrame = pd.DataFrame([np.random.randn(3), [1., 2., np.nan], [np.nan, 4., np.nan], [1., 2., 3.]]) DataFrame = pd.DataFrame(‘key1‘: [‘a‘, ‘b‘, ‘a‘, ‘b‘, ‘a‘, ‘b‘, ‘a‘, ‘a‘], ‘key2‘: [‘one‘, ‘one‘, ‘two‘, ‘three‘, ‘two‘, ‘two‘, ‘one‘, ‘three‘], ‘data1‘: np.random.randn(8), ‘data2‘: np.random.randn(8)) print(DataFrame) print(DataFrame.head(5)) # 前面几个数据 print(DataFrame.index) # 获取索引 print(DataFrame.values) # 获取数据 print(DataFrame[‘drugName‘]) # 切片 DataFrame[‘G‘] = 4 # 增加列 del (DataFrame[‘G‘]) # 删除列 print(DataFrame.loc[0:2, ‘id‘:‘drugName‘]) # 第一个参数索引行,第二个参数是列,基于标签名的索引 print(DataFrame.iloc[0:2, 0:2]) # 第一个参数索引行,第二个参数是列,基于索引编号来索引 print(DataFrame.ix[0:2, ‘id‘:‘drugName‘]) # 第一个参数索引行,第二个参数是列,索引和标签都可以 print(np.abs(DataFrame)) # 绝对值 print(DataFrame.apply(lambda x: x.max(), axis=0)) # 使用apply应用行或列数据 axis=0,方向是列 axis=1,方向是行 print(DataFrame.applymap(lambda x: ‘%.2f‘ % x)) # 使用applymap应用到每个数据 print(DataFrame.sort_index(axis=1, ascending=True)) # 排序默认使用升序排序,ascending=False 为降序排序 axis=1,行升序 print(DataFrame.sort_values(by=1, ascending=True)) # 根据某个唯一的列名进行排序,by=‘column name‘ 如果有其他相同列名则报错. ascending=False 为降序排序 print(DataFrame.isnull()) # 判断是否存在缺失值 True,False print(DataFrame.dropna(axis=1)) # 丢弃缺失数据,根据axis轴方向,丢弃包含NaN的行或列,axis=0,方向是行 axis=1,方向是列 print(DataFrame.fillna(100)) # 填充缺失数据 print(DataFrame.sum(axis=0)) # 求和 axis=0 按列统计,axis=1按行统计 skipna 排除缺失值, 默认为True print(DataFrame.max(axis=0)) # 最大值 axis=0 按列统计,axis=1按行统计 skipna 排除缺失值, 默认为True print(DataFrame.min(axis=0)) # 最小值 axis=0 按列统计,axis=1按行统计 skipna 排除缺失值, 默认为True print(DataFrame.mean(axis=0)) # 平均值 axis=0 按列统计,axis=1按行统计 skipna 排除缺失值, 默认为True print(DataFrame.count(axis=0)) # 非NA值的个数 axis=0 按列统计,axis=1按行统计 skipna 排除缺失值, 默认为True print(DataFrame.std(axis=0)) # 方差 axis=0 按列统计,axis=1按行统计 skipna 排除缺失值, 默认为True print(DataFrame.cumsum(axis=0)) # 累计和 axis=0 按列统计,axis=1按行统计 skipna 排除缺失值, 默认为True print(DataFrame.mad()) # 平均绝对差 axis=0 按列统计,axis=1按行统计 skipna 排除缺失值, 默认为True print(DataFrame.cumprod()) # 累计积 axis=0 按列统计,axis=1按行统计 skipna 排除缺失值, 默认为True print(DataFrame.idxmin()) # 最小值索引 axis=0 按列统计,axis=1按行统计 skipna 排除缺失值, 默认为True print(DataFrame.idxmax()) # 最大值索引 axis=0 按列统计,axis=1按行统计 skipna 排除缺失值, 默认为True print(DataFrame.groupby([‘key1‘, ‘key2‘]).mean()) # 根据字段分组 axis=0 按列统计,axis=1按行统计 skipna 排除缺失值, 默认为True print(DataFrame.groupby([‘key1‘, ‘key2‘]).size()) # 每个分组的元素个数 axis=0 按列统计,axis=1按行统计 skipna 排除缺失值, 默认为True for i, j in DataFrame.groupby([‘key1‘, ‘key2‘]): # 迭代对象 print(list(DataFrame.groupby([‘key1‘, ‘key2‘]))) # 转列表 print(dict(list(DataFrame.groupby([‘key1‘, ‘key2‘])))) # 转字典 print(DataFrame.groupby(‘key1‘).agg(lambda df: df.max() - df.min())) # agg(func) func的参数为groupby索引对应的记录 print(DataFrame.groupby(‘key1‘).agg([‘mean‘, ‘std‘, ‘count‘])) # agg(func) func的参数为groupby索引对应的记录 print(DataFrame.describe()) # 详细信息 skipna 排除缺失值, 默认为True count 4.000000 4.000000 4.000000 4.000000 4.000000 该列(行)非NA值的个数 mean 7.500000 8.500000 9.500000 10.500000 11.500000 该列(行)的均值 std 6.454972 6.454972 6.454972 6.454972 6.454972 该列(行)的方差 min 0.000000 1.000000 2.000000 3.000000 4.000000 该列(行)的最小值 25% 3.750000 4.750000 5.750000 6.750000 7.750000 该列(行)的上四分位数 50% 7.500000 8.500000 9.500000 10.500000 11.500000 该列(行)的非NA值的平均数 75% 11.250000 12.250000 13.250000 14.250000 15.250000 该列(行)的下四分位数 max 15.000000 16.000000 17.000000 18.000000 19.000000 该列(行)的最大值
以上是关于pandas 基本操作的主要内容,如果未能解决你的问题,请参考以下文章