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 基本操作的主要内容,如果未能解决你的问题,请参考以下文章

pandas-20 DataFrame()的基本操作

《Pandas Cookbook》第02章 DataFrame基本操作

pandas小记:pandas数据结构及基本功能

pandas基本介绍-老鱼学pandas

pandas 基本操作

Pandas索引基本操作