4.1.2-数据框创建与基本操作.md

4.1.2 数据框创建与基本操作

数据框(DataFrame)是一种二维的数据结构,用于存储和处理表格数据,它具有行和列的标签。创建数据框对象时需要分别指定行、列标签。导入惯例为 import pandas as pd,以及 from pandas import DataFrame。

常用两种方法创建数据框。其一,从字典创建:字典的键成为列标签,再用 index 参数指定行标签。例如 data = {'平安科技':[45.2,47.1,46.5,49.8], '南方通信':[31.9,27.3,25.2,24.5], '幸福银行':[3.4,4.6,5.2,6.8]},再执行 df = DataFrame(data, index=['2024-01','2024-02','2024-03','2024-04'])。其二,从二维列表创建:二维列表的元素成为数据框的行数据,再用 index 指定行标签、columns 指定列标签,例如 DataFrame(data, columns=col, index=ind)。两种方法可得到结构相同的数据框。

创建后可在末尾追加新行。pandas 2.x 使用 concat():先把新行做成数据框,如 new_row = pd.DataFrame({'平安科技':45.6, '南方通信':26.4, '幸福银行':5.8}, index=['2024-05']),再 df = pd.concat([df, new_row])。pandas 1.x 可用 append():若参数是带 name 属性的序列,name 作为新行的行标签;若参数是字典或无 name 的序列,需设置 ignore_index=True 自动生成行索引,此时原有行标签也会被重建为 0、1、2…。append() 生成新对象而不修改原对象,要更新需把返回值赋回,如 df = df.append(参数)。增加新列可直接赋值:对象['新列名'] = 数据,数据可以是列表或序列对象,长度要与原对象相同,例如 df['三一重工'] = [14.2, 15.6, 17.8, 16.5]。

删除行和列使用数据框的 drop() 方法,格式为 对象.drop('标签名', axis, inplace)。删除行时标签名为行标签,axis 为 0 或不提供该参数,如 df.drop('2024-02');删除列时标签名为列标签,axis 为 1,如 df.drop('幸福银行', axis=1)。inplace 为 True 时直接修改原始对象,否则生成一个新对象。

sort_values() 用于根据指定列对数据进行排序,能够对一列或多列按升序或降序排列,默认升序。例如 df.sort_values(by='体重') 按体重升序;ascending=False 为降序;by=['年龄','体重'] 表示先按年龄排序,年龄相同再按体重排。易错点:pandas 2.x 追加行应使用 concat(),1.x 的 append() 在新版本中已移除;drop() 与 append() 默认都不修改原对象;删列必须指定 axis=1,否则会按行标签查找;新列赋值的长度必须与行数一致。

关键要点


下载此文件