pandas模块函数 - 数据操作用法

本文详细介绍了Pandas库中常用的数据操作函数,包括读写CSV和Excel文件、数据查看与处理、缺失值和重复值处理、数据类型转换、字符串操作、排序、合并与拆分,以及数据重塑等关键功能。
摘要由CSDN通过智能技术生成

pandas->全部函数<-数据操作

读写用存:

--读取和写入数据:

  • read_csv():从CSV文件读取数据
df = pd.read_csv('data.csv')
  • read_excel():从Excel文件读取数据
df = pd.read_excel('data.xlsx')
  • to_csv():将数据保存为CSV文件。
df.to_csv('output.csv', index=False)
  • to_excel():将数据保存为Excel文件。
df.to_excel('output.xlsx', index=False)

--数据查看和处理:

  • head():查看DataFrame或Series的前几行
print(df.head())  # 查看前行
  • tail():查看DataFrame或Series的后几行。
​print(df.tail())  # 查看后行
  • info():显示DataFrame或Series的摘要信息,包括列名、非空值数量等。
print(df.info())
  • describe():生成DataFrame或Series的统计摘要,包括计数、均值、最小值、最大值等。
print(df.describe())
  • shape():获取DataFrame的形状(行数和列数)
print(df.shape)
  • drop():删除指定的行或列
df = df.drop(columns=['column1', 'column2'])  # 删除指定列
df = df.drop(index=[0, 1, 2])  # 删除指定行
  • fillna():填充缺失值或NaN
df['column'].fillna(value)  # 填充某一列的缺失值
df.fillna(value)  # 填充整个DataFrame的缺失值
  • replace():替换特定值
df['column'].replace(to_replace=value, value=new_value)  
# 替换某一列中的特定值
df.replace(to_replace=value, value=new_value)  
# 替换整个DataFrame中的特定值

--数据获取和返回:

  • df.info():提供DataFrame的详细信息,显示关于DataFrame的各个方面的信息
df.info
  • df.dtypes:每一列数据的格式
df.dtypes

df['B'].dtype
# 查看 B 一列格式
  • df.isnull:缺失值,空值
df.isnull()

df['B'].isnull()
# 查看 B 一列空值
  • df.unique():获取DataFrame的形状(行数和列数)
df.unique()

df['B'].unique()
# 查看 B 一列唯一值
  • df.shape:获取DataFrame的形状(行数和列数)
df.shape
  • value:返回DataFrame或Series的值部分
df.values 
  • df.columns获取DataFrame中的列名列表
df.columns

--数据筛选和排序:

  • loc[]iloc[]:通过标签或整数位置进行索引和切片操作
subset = df.loc[df['column'] > value]  
# 根据条件筛选数据子集
subset = df.iloc[1:5, :]  
# 根据整数位置选择行范围和所有列
  • query():使用表达式查询条件筛选数据
subset = df.query('column > @value')  
# 使用变量作为查询条件筛选数据子集
  • sort_values():按指定列对数据进行排序
df.sort_values(by='column', ascending=False)  
# 按指定列降序排序
  • groupby():根据指定的列进行分组操作
grouped_data = df.groupby('column')  
# 根据某一列进行分组

--数据分组和聚合:

  • sum():计算指定列的总和

df['column'].sum()
  • mean():计算指定列的平均值

df['column'].mean()
  • median():计算指定列的中位数。

df['column'].median()
  • min()max():计算指定列的最小值和最大值

df['column'].min()
# 最小值
df['column'].max()
# 最大值
  • count():计算指定列的非空值数量

df['column'].count()
  • std()var():计算指定列的标准差和方差

df['column'].std()
# 标准差
df['column'].var()
# 方差
  • quantile():计算指定列的分位数

df['column'].quantile(q=0.75)  
# 计算75%分位数
  • agg():可以同时应用多个聚合函数,并为每个函数指定一个别名

# 应用多个函数,并取别名
df.agg({'column': ['sum', 'mean'], 'other_column': 'max'})
  • first():返回第一个非空值

df['column'].first()
  • last():返回最后一个非空值

df['column'].last()
  • nunique():计算唯一值的数量
df['column'].nunique()

数据清洗:

--缺失值处理:

  • isnull(): 检测缺失值
  • notnull(): 检测非缺失值
  • dropna(): 删除包含缺失值的行或列
  • fillna(): 填充或替换缺失值

--重复值处理:

  • duplicated(): 检测重复值
  • drop_duplicates(): 删除重复值

--数据类型转换:

  • astype(): 转换指定列的数据类型
  • to_numeric(): 将对象列转换为数值类型
  • to_datetime(): 将对象列转换为日期时间类型

--字符串操作:

  • str.lower()str.upper()str.title(): 将字符串转换为小写、大写、首字母大写等格式
  • str.strip()str.lstrip()str.rstrip(): 去除字符串中的空格或指定字符

--数据排序:

  • sort_values(): 根据指定列对数据进行排序
  • sort_index(): 根据索引对数据进行排序

--数据合并与拆分:

  • concat(): 沿着轴(行或列)将多个DataFrame合并在一起。
  • merge(): 根据指定的列将两个DataFrame连接在一起。
  • split(): 将字符串列拆分为多个列。

--数据重塑:

  • melt(): 将宽格式数据转换为长格式数据。
  • pivot()pivot_table():将长格式数据转换为宽格式数据
  • unstack(),stack()将列转为行,列转为行
    • stack():主要作用是将DataFrame的列“堆叠”到行上,从而生成一个更高层次的行索引。这对于处理多层次索引的数据非常有用
    • unstack():函数的作用是将行索引转换为列,重新排列数据的结构。
  • 下方是我在某些场景使用unstack()函数前后的结构。

--综合处理:

  • replace():数据替换
  • rename():更改列名称
  • lower():大小写转换
  • strip():清除字段的字符空格
  • explode()将类列表的每个元素转换为行,实现列转行的功能,可处理列表、元组、Series等类型

  • toList()将一个容器转换为 List,允许重复值,有顺序

  • toSet():将一个容器转换为 Set,不允许重复值,没有顺序

  • toMap():无序、以键值对的形式添加元素,键不能重复,值可以重复

  • isin()大多数用来清洗数据,删选DataFrame中一些行,或判断该列中元素是否在列表中

  • df=pd.DataFrame(np.random.randn(4,4),columns=['A','B','C','D'])
    """
              A         B         C         D
    0 -0.018330  2.093506 -0.086293 -2.150479
    1  0.104931 -0.271810 -0.054599  0.361612
    2  0.590216  0.218049  0.157213  0.643540
    3 -0.254449 -0.593278 -0.150455 -0.244485
    """
    df.A>0
    #布尔索引
    """
    0    False
    1     True
    2     True
    3    False
    Name: A, dtype: bool
    """
    #布尔索引应用
    
    df[df.A>0]
    """
              A         B         C         D
    1  0.104931 -0.271810 -0.054599  0.361612
    2  0.590216  0.218049  0.157213  0.643540
    """
    df[df[某列].isin(条件)&df[某列].isin(条件)]
    
    #应用
    df.D=[0,1,0,2]
    df[df.E.isin(['a','d'])&df.D.isin([0,])]
    """
             A         B         C  D  E
    0 -0.01833  2.093506 -0.086293  0  a
    """
    


数据合并:

--数据表合并:

pd.merge()
  • inner:内连接,默认

df_inner=pd.merge(df,df1,how='inner')
  • left:左连接

df_left=pd.merge(df,df1,how='left')
  • right:右连接

df_right=pd.merge(df,df1,how='right')
  • outer:外连接

df_outer=pd.merge(df,df1,how='outer')
append()
result = df1.append(df2)
join()

result = left.join(right, on='key')
concat()
pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,
	          keys=None, levels=None, names=None, verify_integrity=False,
	          copy=True)

  • objs︰ 一个序列或系列、 综合或面板对象的映射。如果字典中传递,将作为键参数,使用排序的键,除非它传递,在这种情况下的值将会选择。任何没有任何反对将默默地被丢弃,除非他们都没有在这种情况下将引发 ValueError
  • axis: {0,1,…},默认值为 0
  • join: {‘内部’、 ‘外’},默认 ‘外’。如何处理其他 axis(es) 上的索引。联盟内、 外的交叉口。
  • ignore_index︰ 布尔值、 默认 False。如果为 True,则不要串联轴上使用的索引值
  • join_axes︰ 索引对象的列表。具体的指标,用于其他 n-1 轴而不是执行内部/外部设置逻辑。 keys︰序列,默认为无。构建分层索引使用通过的键作为最外面的级别。如果多个级别获得通过,应包含元组
  • levels︰ 列表的序列,默认为无。具体水平 (唯一值) 用于构建多重。否则,他们将推断
  • names︰ 列表中,默认为无。由此产生的分层索引中的级的名称
  • verify_integrity︰ 布尔值、 默认 False。检查是否新的串联的轴包含重复项
  • copy:布尔值、 默认 True。如果为 False,请不要,不必要地复制数据

数据写入:

--数据写入:

  • 写入Excel
df_inner.to_excel('excel.xlsx', sheet_name='sheet_name') 
  • 写入到CSV
df_inner.to_csv('csv.csv') 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值