首页 > 其他分享 >pandas常用命令

pandas常用命令

时间:2023-02-23 15:47:51浏览次数:27  
标签:name df pandas read pd 常用命令 col axis

基本操作

(1)读取、写入csv文件

pd.read_csv('file.csv')
df.to_csv('file.csv', sep=',', index=False) #逗号分隔,不带索引

(2)读取、写入excel文件

pd.read_excel('file.xlsx')
df.to_excel('file.xlsx', sheet_name='Sheet1', index=False) #指定Sheet名,不带索引

(3)读取、写入文本文件

pd.read_table('file.txt')
df.to_table('file.txt')
Format Type Data Description Reader Writer
text CSV read_csv to_csv
text JSON read_json to_json
text HTML read_html to_html
text local clipboard read_clipboard to_clipboard
binary MS Excel read_excel to_excel
binary Open Document read_excel
binary HDF5 Format read_hdf to_hdf
binary Feather Format read_feather to_feather
binary Parquet Format read_parquet to_parquet
binary Msgpack read_msgpack to_msgpack
binary Stata read_stata to_stata
binary SAS read_sas
binary Python Pickle Format read_pickle to_pickle
SQL SQL read_sql to_sql
SQL Google Big Query read_gbq to_gbq

(4)显示前n条数据

df.head(n)

(5)显示后n条数据

df.tail(n)

(6)查看数据维度

df.shape

(7)数据集基本信息

df.info()

(8)数据集的基本统计信息

df.describe()

(9)获取数据集索引

df.index

(10)查看数据值

df.values

(11)获取数据集所有列名

df.columns

(12)获取列类型

df.dtypes
# 查看某一列格式
df['col_name'].dtype

(13)设置索引:col_name为索引的列名

df.set_index('col_name')

(14)重置索引

# 不保留原索引到DataFrame中
df.reset_index(drop=True)

(15)修改数据类型

df['col_name'].astype(np.float32)

(16)修改列名

# 使用字典参数可修改不同的列名
df.rename(columns={'col_name':'new_col_name'})

(17)调整列的顺序

# 新列的顺序
col_names = ['col1', 'col2', 'col3', 'col4']
df[col_names]

访问数据

(1)访问某列

df['col_name']

(2)访问多列

df[['col1_name', 'col2_name']]

(3)按位置访问某列

# 访问第一列
df[df.columns[0]]

(4)按位置访问多列

# 访问第3至第5列
df[df.columns[2:5]]

(5)访问类型为np.int32的所有列

df[[c for c in df.columns if df[c].dtype == np.int32]]

(6)访问特定位置的数据:索引访问

df.loc[index_name, col_name]

(7)访问特定位置的数据:位置访问

# 访问第2行、第三列单元格数据
df.iloc[2,3]

数据筛选

(1)筛选某列值大于阈值的所有行

# 筛选col_name列大于threshold的所有行
df.loc[df['col_name'] > threshold, :]

(2)多条件筛选

# 筛选条件
cond = (df['col1_name'] == 'A') & (df['col2_name'] == 'B')

df.loc[cond, :]

(3)多值匹配

df.loc[df['col_name'].isin('A', 'B')]

(4)模式匹配

# 开头包含某个字符
df.loc[df['col_name'].str.startswith('A'), :]

# 中间包含某值的模式匹配
df.loc[df['col_name'].str.contains('A'), :]

(5)where筛选

df.where(df['col_name'] == 'A')

数据处理

(1)检查缺失值

pd.isna(df)
# pd.isnull(df)
# df.isna()
# df.isnull()
# 查看某列是否为空
df['col_name'].isna()

(2)删除缺失值:按行删除,只要该行有缺失值即删除

df.dropna()

(3)删除缺失值:按行删除,该行所有值都缺失才删除

df.dropna(how='all')

(4)删除缺失值:按列删除,只要该列有缺失值即删除

df.dropna(axis=1, how='any')

(5)删除缺失值:按列删除,该列所有值都缺失值才删除

df.dropna(axis=1, how='all')

(6)删除重复行

# keep参数可用于设置保留哪个值
df.drop_duplicates('col_name')

(7)对索引进行排序

df.sort_index()

(8)对某列进行排序

# 对col_name列进行降序排列
df.sort_values(by='col_name', ascending=False)

(9)对多列进行排序

# 对col1_name、col2_name分别按降序、升序排列
df.sort_values(by=['col1_name', 'col2_name'], ascending=[False, True])

(10)增加列

df.assign()

(11)删除列

df.drop('col_name', axis=1)

(12)删除行

df.drop('index_name', axis=0)

(13)查看某列的唯一值

df['col_name'].unique()

(14)查看唯一值数量

df.nunique()
# 查看某一列唯一值数量
df['col_name'].nunique()

(15)填充缺失值

df.fillna(value=0)
# 用均值填充缺失值
df['col_name'].fillna(df['col_name'].mean())

(16)字符串替换

df['col_name'].replace('replaced_str', 'new_str')

数值运算

(1)求各列最小值

df.min()

(2)求各列最大值

df.max()

(3)求各列和及平均值

# 求各列和
df.sum()
# 求各列平均值
df.mean()

(4)求某一列最大值所在的位置

df['col_name'].idxmax()

(5)求各列之间的相关性

df.corr()

以上的各函数用法中,我们都可以修改axis参数,当axis=0时表示对行进行操作,当axis=1时表示对列进行操作。

表连接

(1)Merge:类似SQL连接,多参数可选择
# 左连接
pd.merge(left=df1, right=df2, on='union_key', how='left')
# 右连接
pd.merge(left=df1, right=df2, on='union_key', how='right')
# 内连接
pd.merge(left=df1, right=df2, on='union_key', how='inner')
# 外链接
pd.merge(left=df1, right=df2, on='union_key', how='outer')
(2)concat:可根据axis方向进行横向或纵向拼接
# 按列进行拼接
pd.concat([left, right], axis=1)
# 按行进行拼接
pd.concat([left, right], axis=0)
(3)append:添加行
# s为Series
df.append(s, ignore_index=True)

分组聚合

(1)单个分组变量
# 对col_name列进行分组,并计算每组的平均值
df.groupby('col_name').agg(np.mean)

(2)多个分组变量

# 对col1_name、col2_name进行分组,并分别计算平均值和最大值
df.groupby(['col1_name', 'col2_name']).agg([np.mean, max])

函数应用

(1)map:根据提供的函数对序列做映射

# 映射函数
def gender_map_func(g):
    if gender == '男':
        return 1
    else:
        return 0

# 将gender列的男、女映射为1和0
df['gender'].map(gender_map_func)

(2)apply:可作用于Series或DataFrame,比map功能更复杂高级

# 上面map函数功能可用下面的apply实现
df['gender'].apply(lambda x: 1 if x == '男' else 0)

# 另一种用法
def apply_age(x, bias):
    return x + bias

# 将age列均减去3
df['age'].apply(apply_age, args=(-3, ))

(3)applymap:对DataFrame中的每个元素执行操作

# 将df中所有元素均加1
df.applymap(lambda x: x + 1)

# 所有元素保留两位有效小数
df.applymap(lambda x: '%.2f'%x)

标签:name,df,pandas,read,pd,常用命令,col,axis
From: https://www.cnblogs.com/conpi/p/17148172.html

相关文章

  • pandas条件替换值(where&mask)
    pandas条件替换值(where&mask)在日常分析中,经常会遇到对数据的筛选处理相关的工作,我们可以使用loc和iloc定位分析筛选的列或行数据,下面介绍一种高级筛选的用法where和mask......
  • pandas
    seriespandasseries类似于表格中一个列(column),类似于一维数组,可以保存任何数据类型,series由索引(index)和列组成,函数如下:pandas.Series(data,index,dtype,name,copy)参数......
  • Git 常用命令大全
    1、gitbranch,查看本地分支,比如:  2、gitcheckout,切换到本地指定分支上,如切换到master分支  gitcheckoutmaster  3、删除本地backup分支,gitbranch-dba......
  • 在Pandas中通过时间频率来汇总数据的三种常用方法
    当我们的数据涉及日期和时间时,分析随时间变化变得非常重要。Pandas提供了一种方便的方法,可以按不同的基于时间的间隔(如分钟、小时、天、周、月、季度或年)对时间序列数据......
  • Pandas从SQL型数据库读写数据
    Pandas读写SQL型数据库主要用到pandas.read_sql()和DataFrame.to_sql()两个函数。read_sql()read_sql主要有如下几个参数:sql:SQL命令字符串con:连接sql数据库的......
  • CMD常用命令汇总
    1、shutdown:60秒倒计时关机命令shutdown-s-t60将在一分钟之内关闭计算机2、regedit:打开注册表3、ipconfig/all:查看电脑网络连接信息,包括本地IP、DNS地址等ipconfig的另......
  • git常用命令操作
    1. 查看分支gitbranch-a2.切换分支gitcheckout[分支名称]3.新建分支,首先切换到需要拉取的分支上,然后使用下面任一命令即可gitcheckout-b[分支......
  • vim常用命令之多行注释和多行删除
    vim中多行注释和多行删除命令,这些命令也是经常用到的一些小技巧,可以大大提高工作效率。 1.多行注释: 1.首先按esc进入命令行模式下,按下Ctrl+v,进入列(也叫区块)模式;......
  • ADB常用命令
    常用命令:adbdevices#查看设备adbshelladbconnectip:port#远程连接adbshellpmlistpackages#查看所有包名adbshellpmlistpackages–s#查看所有系统......
  • pandas vs sql 基本操作对比
    作为一名数据分析师,平常用的最多的工具是SQL(包括MySQL和HiveSQL等)。对于存储在数据库中的数据,自然用SQL提取会比较方便,但有时我们会处理一些文本数据(txt,csv),这个时候......