Pandas常用操作命令(二)

简介: Pandas常用操作命令(二)

大家好,我是欧K。

本期为大家带来Pandas常用操作命令介绍的第二篇,主要介绍pandas的数据切片、筛选部分常用到一些指令,本系列会不断进行补充更新希望对你有所帮助。

上一篇👉Pandas常用操作命令(一)


3. 数据清洗


示例数据:


以test.csv文件为例:

filename = 'test.csv'
df = pd.read_csv(filename, encoding='gbk')
df

# 重命名列
df.columns = ['姓名','性别','语文','数学','英语','城市','省份']

3.16 强制转换数据类型

df_t1 = df.dropna()
df_t1['语文'].astype('int')

注意空值不进行转换。

3.17 查看有多少不同的城市

df['城市'].unique()

array(['南京', '广州', '上海', '海口', '深圳', '重庆', nan, '杭州', '宁波', '苏州'],
dtype=object)


3.18 单值替换(整个表格替换)

苏州替换为南京

df.replace('苏州', '南京')

3.19 多值替换

苏州替换为南京广州替换成深圳

# 方法一
df.replace({'苏州':'南京','广州':'深圳'})
# 方法二
df.replace(['苏州','广州'],['南京','深圳'])

3.20 多值替换单值

广州和深圳替换为东莞

df.replace(['深圳','广州'],'东莞')

3.21 替换某列中的值(单列替换)

df['城市'] = df['城市'].replace('海口', '三亚')

3.22 拆分某列,生成新的Dataframe

姓名列拆分为学号列姓名列

df1 = df['姓名'].str.split('-',expand=True)
df1.columns = ['学号','姓名']
df1['性别'] = df['性别']
df1['语文'] = df['语文']
df1['数学'] = df['数学']
df1['英语'] = df['英语']
df1['城市'] = df['城市']
df1['省份'] = df['省份']
df1

3.23 某一列类型转换,注意该列类型要一致,包括(NaN)

df1.dropna(inplace = True)
df1['语文'] = df1['语文'].apply(int)
df1


4. 数据切片、筛选

4.1 输出城市为上海的行

df[df['城市']=='上海']

4.2 输出城市为上海或广州的行

df[df['城市'].isin(['上海','广州'])]

4.3 输出城市名称中含有‘海’字的行

df[df['城市'].str.contains("海", na=False)]

4.4 输出城市名称以‘海’字开头的行

df[df['城市'].str.startswith("海", na=False)]

4.5 输出城市名称以‘海’字结尾的行

df[df['城市'].str.endswith("海", na=False)]

4.6 输出所有姓名,缺失值用Null填充


df['姓名'].str.cat(sep='、',na_rep='Null')

'001-张三、002-李四、003-赵四、004-王五、005-陈六、006-孙五、007-周七、Null、009-王二、010-刘八、011-郑九、012-赵十、013-郭一'

4.7 重置索引

df2 = df1.set_index('学号')
df2

4.8 前两行

df2[:2]

4.9 后两行

df2[-2:]

4.10 2-8行

df2[2:8]

4.11 每隔3行读取

df2[::3]

4.12 2-8行,步长为2,即第2/4/6行

df2[2:8:2]

4.13 选取'语文','数学','英语'列

df2[['语文','数学','英语']]

4.14 学号为'001'的行,所有列

df.loc只能使用标签索引,不能使用整数索引,通过便签索引切边进行筛选时,前闭后闭.

df2.loc['001', :]

4.15 学号为'001'或'003'的行,所有列

df2.loc[['001','003'], :]


4.16 学号为'001'至'009'的行,所有列

df2.loc['001':'009', :]

4.17 列索引为'姓名',所有行

df2.loc[:, '姓名']


4.18 列索引为'姓名'至‘城市’,所有行

df2.loc[:, '姓名':'城市']

4.19 语文成绩大于80的行

# 方法一
df2.loc[df2['语文']>80,:]
# 方法二
df2.loc[df2.loc[:,'语文']>80, :]
# 方法三
df2.loc[lambda df2:df2['语文'] > 80, :]


4.20 语文成绩大于80的人的姓名和城市

df2.loc[df2['语文']>80,['姓名','城市']]

4.21 输出'赵四'和'周七'的各科成绩

df2.loc[df2['姓名'].isin(['赵四','周七']),['姓名','语文','数学','英语']]


df.iloc[]只能使用整数索引,不能使用标签索引,通过整数索引切边进行筛选时,前闭后开4.22 iloc选取第2行

df2.iloc[1, :]

4.23 iloc选取前3行

df2.iloc[:3, :]

4.24 选取第2行、第4行、第6行


df2.iloc[[1,3,5],:]

4.25 选取第2列

df2.iloc[:, 1]

4.26 选取前3列

df2.iloc[:, :3]

4.27 选取第3行的第3列

df2.iloc[3, 3]

4.28 选取第1列、第3列和第4列

df2.iloc[:, [0,2,3]]

4.29 选取第2行的第1列、第3列、第4列

df2.iloc[1, [0,2,3]]


4.30 选取前3行的前3列

df2.iloc[:3, :3]

未完待续。。。


END


以上就是本期为大家整理的全部内容了,赶快练习起来吧,喜欢的朋友可以点赞、点在看也可以分享让更多人知道。

下期预告:pandas排序、分组、统计

相关文章
|
3天前
|
数据格式 Python
如何使用Python的Pandas库进行数据透视图(melt/cast)操作?
Pandas的`melt()`和`pivot()`函数用于数据透视。基本步骤:导入pandas,创建DataFrame,然后使用这两个函数转换数据格式。示例代码展示了如何通过`melt()`转为长格式,再用`pivot()`恢复为宽格式。输入数据是包含'Name'和'Age'列的DataFrame,最终结果经过转换后呈现出不同的布局。
46 6
|
3天前
|
JSON 数据挖掘 数据格式
Pandas中Series、DataFrame讲解及操作详解(超详细 附源码)
Pandas中Series、DataFrame讲解及操作详解(超详细 附源码)
122 0
|
8月前
|
数据挖掘 数据建模 索引
【50个Pandas高级操作】(上)
【50个Pandas高级操作】
|
5月前
|
前端开发 Python
Python 教程之 Pandas(13)—— series 上的转换操作
Python 教程之 Pandas(13)—— series 上的转换操作
52 0
|
3天前
|
索引 Python
如何使用Python的Pandas库进行数据透视表(pivot table)操作?
使用Pandas在Python中创建数据透视表的步骤包括:安装Pandas库,导入它,创建或读取数据(如DataFrame),使用`pd.pivot_table()`指定数据框、行索引、列索引和值,计算聚合函数(如平均分),并可打印或保存结果到文件。这允许对数据进行高效汇总和分析。
11 2
|
3天前
|
存储 数据库连接 数据处理
数据加载与保存:Pandas中的数据输入输出操作
【4月更文挑战第16天】Pandas是Python数据分析的强大工具,支持多种数据加载和保存方法。本文介绍了如何使用Pandas读写CSV和Excel文件,以及与数据库交互。`read_csv`和`to_csv`用于CSV操作,`read_excel`和`to_excel`处理Excel文件,而`read_sql`和`to_sql`则用于数据库的读写。了解这些基本操作能提升数据处理的效率和灵活性。
|
3天前
|
数据可视化 Python
如何使用Python的Pandas库进行数据分组和聚合操作?
【2月更文挑战第29天】【2月更文挑战第105篇】如何使用Python的Pandas库进行数据分组和聚合操作?
|
3天前
|
机器学习/深度学习 算法 索引
50个超强的Pandas操作 !!
50个超强的Pandas操作 !!
71 1
|
3天前
|
索引 Python
Python 教程之 Pandas(13)—— series 上的转换操作
Python 教程之 Pandas(13)—— series 上的转换操作
57 0
Python 教程之 Pandas(13)—— series 上的转换操作
|
3天前
|
JSON 数据挖掘 数据库
Pandas 高级教程——IO 操作
Pandas 高级教程——IO 操作
173 2