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函数方法的使用