[Python]DataFrame的创建、数据读取、增加删除行列

本文详细介绍了使用Pandas库进行DataFrame数据操作的方法,包括数据读取、行与列的选取、切片、删除与新增等核心操作技巧。通过实例演示了如何高效地处理和分析数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DataFrame数据读取

读取具体单元格值

方法一 df[‘ColName’][行号]
方法二 df.values[1][1]
df.values 去掉行名、列名只剩下数组构成的数组 ‘numpy.ndarray’
可用df.values[行号]取出整行数据
用df.values[行号][列号]取出单个数据

读取一列

df[‘ColName’]

读取多列

按列名取列
列举:
df[[‘ColName1’,‘ColName2’]] #取ColName1和ColName2两列

df.loc[:,[‘ColName1’,‘ColName2’,‘ColName3’]] #取ColName1和ColName2和ColName3三列

切片:
df.loc[:,‘ColName1’:‘ColName2’]#取ColName1到ColName2(含ColName2)的所有列
如:

df = pd.DataFrame({'one':[1,2,3],'two':[2,4,5],'three':[7,8,9]},index=[1,2,3])
print(df.loc[:,'one':'three'])

输出结果:
one two three
1 1 2 7
2 2 4 8
3 3 5 9

按列号取列
df.iloc[:,1:3] #取第二列(列号为1)和第三列(列号为2)

读取一行

df.loc[行号]或者df.iloc[行号]
区别如下
1.loc location 参数可以是自定义的行号
iloc integer 参数只能是默认的行号
如:

df = pd.DataFrame({'one':[1,2,3],'two':[2,4,5]},index = [1,2,3])
print(df.iloc[1])
print(df.loc[1])

输出:
one 2
two 4
Name: 2, dtype: int64
one 1
two 2
Name: 1, dtype: int64
2.切片索引是否包含右边
loc 包括,若自定义索引非阿拉伯数字,会报错;若有阿拉伯数字的自定义索引,按照该索引切片;没有就按照默认索引。
iloc 不包括,按照默认索引切片。与基础的df[行号1:行号2]切片效果一致。
如:

print(df.loc[1:2])#取自定义索引号为1和2的行
print(df.iloc[1:2])#取默认行号为1的行,即第二行

输出:
one two
1 1 2
2 2 4
one two
2 2 4

读取多行

df.loc[行号1,行号2]读取行号1和行号2数据
df[行号1:行号2]读取行号1到行号2的前一个的数据

DataFrame删除行

df = df.drop(自定义行号或者行名,没有自定义的话就是默认索引)

DataFrame删除列

df = df.drop(‘列名’,axis = 1)

DataFrame新增列

df.insert(新增列的列序号,‘新增列列名’,value)
value可以是一个值,该列所有值都是该值 ;也可以是长度等于行号的列表,一一对应。

DataFrame的创建

数组转化为DataFrame

df = pandas.DataFrame(nArray)

字典转化为DataFrame(values类型为series)

dic = {‘ColName’:,‘ColName1’:}
df = pandas.DataFrame(dic,index=[])
如:

df = pd.DataFrame({'one':data['POINT_X'],'two':data['POINT_Y']},index = [i for i in range(len(data))]])

dic = {‘ColName’:,‘ColName1’:}
如:

df = pd.DataFrame({'one':[1,2,3],'two':[2,4,5]},index = [1,2,3])

注意:index 为行索引,可随意更改;Columns 为字典键,不可以改,否则取不到值。

### 如何使用 Pandas 的 DataFrame 从 Excel 文件中读取数据 Pandas 是 Python 中用于数据分析的强大工具之一,它支持多种数据源的操作,其中包括 Excel 文件。通过 `pd.read_excel()` 方法可以轻松实现从 Excel 文件中加载数据DataFrame 对象中[^1]。 以下是具体的方法和代码示例: #### 基础读取 最简单的读取方式如下所示: ```python import pandas as pd df = pd.read_excel("data_test.xlsx") print("\n(1) 全部数据:") print(df.values) ``` 上述代码会将整个 Excel 文件的内容加载到名为 `df` 的 DataFrame 中,并打印其值[^3]。 #### 获取特定单元格的数据 如果需要获取某个具体的单元格值,则可以通过 `.iloc[]` 或者 `.loc[]` 来完成。例如: ```python # 获取第2行第3列的值 print("\n(2) 第2行第3列的值:") print(df.iloc[1, 2]) # 使用 .loc 获取指定行列交叉处的值(基于标签) print("\n(5) 第6行的姓名:") print(df.loc[5, "姓名"]) ``` #### 提取某一行或某一列 对于提取整行或者整列的情况,也可以利用 `.iloc[]` 实现: ```python # 获取第3行的所有数据 print("\n(3) 第3行数据:") print(df.iloc[2].values) # 获取第2列的所有数据 print("\n(4) 第2列数据:") print(df.iloc[:, 1].values) ``` #### 多个区域的选择 当需要选取连续多行或多列时,可采用切片的方式: ```python # 获取第2至3行、第3至4列之间的数据 print("\n(6) 第2至3行、第3至4列数据:") print(df.iloc[1:3, 2:4].values) ``` #### 同时读取多个 Sheet 除了单个 sheet 的读取外,还可以一次性读取多个 sheets 并将其存储在一个字典里。下面展示了三种不同的情况: ```python # (1) 指定多个 sheet 名称读取 dfs_by_names = pd.read_excel("data_test.xlsx", sheet_name=["test1", "test2"]) # (2) 指定多个 sheet 索引读取 dfs_by_indices = pd.read_excel("data_test.xlsx", sheet_name=[0, 1]) # (3) 混合指定 sheet 名称和索引读取 mixed_dfs = pd.read_excel("data_test.xlsx", sheet_name=[0, "test2"]) ``` 以上每种情况下都会返回一个以 sheet 名称为 key 的字典,其中 value 即为对应的 DataFrame 数据[^4]。 --- ### 注意事项 - 如果 Excel 文件中有多个工作表,默认只读取第一个工作表;若要访问其他的工作表,需设置参数 `sheet_name`。 - 当文件路径中含有中文字符或其他特殊符号时,请确保编码一致以免引发错误。 - 在实际应用过程中可能还会遇到一些额外配置需求,比如跳过某些头部行数 (`skiprows`) 或定义自定义解析器等高级选项。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值