1、DataFrame的常用操作
1)查看DataFrame的大小
import pandas as pd
df = pd.DataFrame([[10,6,7,8],
[1,9,12,14],
[5,8,10,6]],
columns = ['a','b','c','d'])
print(df.shape)
2)查看DataFrame的列名(columns)
import pandas as pd
df = pd.DataFrame([[10,6,7,8],
[1,9,12,14],
[5,8,10,6]],
columns = ['a','b','c','d'])
print(df.columns)
3)查看DataFrame的行名(index)
import pandas as pd
df = pd.DataFrame([[10,6,7,8],
[1,9,12,14],
[5,8,10,6]],
columns = ['a','b','c','d'])
print(df.index)
4)查看每行的数据类型
import pandas as pd
df = pd.DataFrame([[10,6,7,8],
[1,9,12,14],
[5,8,10,6]],
columns = ['a','b','c','d'])
print(df.dtypes)
5)查看行列的内容
import pandas as pd
df = pd.DataFrame([[10,6,7,8],
[1,9,12,14],
[5,8,10,6]],
columns = ['a','b','c','d'])
print(df)
print(df.iloc[-1]) #选取DataFrame最后一行,返回的是Series
print(df.iloc[-1:]) #选取DataFrame最后一行,返回的是DataFrame
print(df.loc[0:1,'b':'c']) #这种用于选取行索引列索引已知
print(df.iat[1,1]) #选取第二行第二列,用于已知行、列位置的选取。
print(df.head(2)) #查看前两行的内容
print(df.tail(2)) #查看后两行的内容
print(df.loc[[df.index[0],df.index[1]]]) #通过label查看
print(df.loc[[df.index[-2],df.index[-1]]])
6)查看每一列数据的整体特征
import pandas as pd
df = pd.DataFrame([[10,6,7,8],
[1,9,12,14],
[5,8,10,6]],
columns = ['a','b','c','d'])
print(df.describe())
7)对DataFrame进行倒置
import pandas as pd
df = pd.DataFrame([[10,6,7,8],
[1,9,12,14],
[5,8,10,6]],
columns = ['a','b','c','d'])
print(df.T)
2、DataFrame的行列运算
1)DataFrame中两列数据相加减
import pandas as pd
df = pd.DataFrame([[10,6,7,8],
[1,9,12,14],
[5,8,10,6]],
columns = ['a','b','c','d'])
df['d - a'] = df['d'] - df['a']
df['d + a'] = df['d'] + df['a']
print(df)
2)DataFrame中两行数据相加减
import pandas as pd
df = pd.DataFrame([[10,6,7,8],
[1,9,12,14],
[5,8,10,6]],
columns = ['a','b','c','d'])
print(df[df.a==10].values-df[df.a==1].values)
print(df[df.a==10].values+df[df.a==1].values)
3、行列选取操作
Pandas 中的行列选取操作主要通过 loc[]
(按标签)和 iloc[]
(按位置)实现,支持单行单列、切片、多行多列以及行列组合的灵活访问方式;列还可通过 df['列名']
或 df[['列1', '列2']]
快速提取,为数据筛选与分析提供了高效便捷的基础工具。
import pandas as pd
df = pd.DataFrame({
'A': [10, 20, 30],
'B': [5, 15, 25],
'C': ['x', 'y', 'z']
}, index=['row1', 'row2', 'row3'])
print(df)
#选取列
# 返回 Series,只含列 A
print(df['A'])
# 返回子 DataFrame,包含列 A 和 B
print(df[['A', 'B']])
#选取行
# 按行标签选取 row1
print(df.loc['row1'])
# 按行位置选取第 0 行
print(df.iloc[0])
# 切片选取第 0 和第 1 行(不含 row3)
print(df[0:2])
4、添加行与列
添加列可以通过直接赋值的方式实现,常用于计算列间关系或添加新数据;添加行通常使用 pd.concat()
合并一个新构造的 DataFrame
,通过设置相同的列名与指定索引,实现将新行插入到原数据中,是扩展数据表的重要手段。
import pandas as pd
df = pd.DataFrame({
'A': [10, 20, 30],
'B': [5, 15, 25],
'C': ['x', 'y', 'z']
}, index=['row1', 'row2', 'row3'])
print(df)
#添加列
# 新列为 A+B
df['D'] = df['A'] + df['B']
print(df)
#添加行
new_row = pd.DataFrame({'A': [40], 'B': [35],
'C': ['w'], 'D': [75]}, index=['row4'])
df = pd.concat([df, new_row])
print(df)
5、删除行与列
在 Pandas 中,删除行与列常通过 drop()
方法实现,其中 axis=0
表示删除行,axis=1
表示删除列;可结合 inplace=True
参数直接修改原始 DataFrame
,适用于按标签删除指定的行或列,常用于数据清洗与结构调整。
import pandas as pd
df = pd.DataFrame({
'A': [10, 20, 30],
'B': [5, 15, 25],
'C': ['x', 'y', 'z']
}, index=['row1', 'row2', 'row3'])
print(df)
#删除列
df.drop('B', axis=1, inplace=True)
print(df)
#删除行
df.drop('row2', axis=0, inplace=True)
print(df)
6、应用函数
Pandas 中,应用函数是对 DataFrame 或 Series 中的数据进行批量处理的重要方式。常用的 apply()
可对行或列执行函数,applymap()
用于逐元素操作整个 DataFrame
,而 map()
通常用于 Series 中的元素级处理,适合替换、转换或格式化数据,能大大提高数据清洗与转换的灵活性和效率。
import pandas as pd
df = pd.DataFrame({
'A': [10, 20, 30],
'B': [5, 15, 25],
'C': ['x', 'y', 'z']
}, index=['row1', 'row2', 'row3'])
print(df)
# 应用函数
# 对 A 列每个值乘以 2
# 整体转换
print(df['A'].apply(lambda x: x * 2))
print(df.applymap(lambda x: str(x) if isinstance(x, int) else x))
print(df)
7、修改数据
Pandas 中,修改数据可以通过标签或位置直接定位并赋值,如使用 at
和 iat
修改单个单元格,使用 loc
和 iloc
修改整行或整列,也可以通过 replace
替换指定值,或用 apply
、applymap
对行列或整个表格进行函数级修改,灵活高效地完成数据更新与处理。
import pandas as pd
df = pd.DataFrame({
'A': [10, 20, 30],
'B': [5, 15, 25],
'C': ['x', 'y', 'z']
}, index=['row1', 'row2', 'row3'])
print(df)
# 按标签
df.at['row1', 'A'] = 100
# 按位置
df.iat[0, 1] = 50
print(df)
# 替换字符串
df.replace({'x': 'X'})
df['B'] = df['B'].replace(15, 99)
print(df)
相关文档:
Python pandas.DataFrame.iloc函数方法的使用
Python pandas.DataFrame.loc函数方法的使用
Python pandas dataframe iloc 和 loc 的用法及区别
Python pandas.DataFrame.at函数方法的使用
Python pandas.DataFrame.iat函数方法的使用