『Python』Excel文件的读取以及DataFrame的相关操作 (2)

本文总结了使用Python的Pandas库对Excel文件进行数据定位和提取的一些常见操作,包括查找列表中指定值的索引、设置DataFrame的索引、重置索引、删除数据、按条件筛选行、列重命名、列排序以及将行值设为列名等实用技巧。这些方法对于数据处理和分析工作非常有用。

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

最近经常使用 pythonpythonpythonExcelExcelExcel 文件进行 ETLETLETL 操作,其中 pandaspandaspandas 中一些函数经常用到,因此写下来作为初步总结。本章内容偏向于数据的定位与提取

1. 已知某值,定位它在列表 list1list1list1 中的位置,即返回它的索引

# list 的 index 方法有个缺点 --> 就是若某个值在列表中重复出现,这个方法总是只返回第一次出现的索引
index_num = list1.index('specified_value')

2. 将某列值设为 DataFrameDataFrameDataFrame 的索引

df.set_index('col_name', inplace=True)

3. 重置索引

df.reset_index(inplace=True, drop=True)
# 若drop=False, 则原索引会在DataFrame中出现

4. 删除 DataFrameDataFrameDataFrame 中的第一行数据
只有在使用方法 333 后或者DataFrame本身就没有特定索引时有效

df.drop([0], axis=0)

5. 在某一列中查找特定值,找到后获取特定值所在行的所有值
    \space \space \space \space     方法1:(几个月后回来瞄一眼发现这真是个笨b方法233)
🔺:需要结合方法 111

import pandas as pd
df = pd.DataFrame({
	"A": ["A0", "A1", "A2", "A3"],
	"B": [pd.NA, "B1", pd.NA, "B3"],
	"key": ["K0", "K1", "K2", "K1"],}
)
"""
    A     B key
0  A0  <NA>  K0
1  A1    B1  K1
2  A2  <NA>  K2
3  A3    B3  K1
"""
# 比如获取'key'列中,值为'K1'的所有行的值
df[df.iloc[:, df.columns.tolist().index('key')] == 'K1']
"""
	A	B	key
1	A1	B1	K1
3	A3	B3	K1
"""

    \space \space \space \space     方法2:

# 同样是获取'key'列中,值为'K1'的所有行的值
df[df['key'] == 'K1']
"""
	A	B	key
1	A1	B1	K1
3	A3	B3	K1
"""

6. 列的重命名
🔺:需要结合字典

df.rename(columns={'original_name': 'new_name'}, inplace=True)

7. 按照特定顺序重新对 DataFrameDataFrameDataFrame 中的列重新排列

import pandas as pd
df = pd.DataFrame({
	"A": ["A0", "A1", "A2", "A3"],
	"B": [pd.NA, "B1", pd.NA, "B3"],
	"key": ["K0", "K1", "K2", "K1"],}
)
"""
    A     B key
0  A0  <NA>  K0
1  A1    B1  K1
2  A2  <NA>  K2
3  A3    B3  K1
"""
order = ['key', 'A', 'B']
df = df[order]
print(df)
"""
key	A	B
0	K0	A0	<NA>
1	K1	A1	B1
2	K2	A2	<NA>
3	K1	A3	B3
"""

8. 将某行的值设为 DataFrameDataFrameDataFrame 的列名
🔺:该列长度要与 df.columnsdf.columnsdf.columns 的长度一致

import pandas as pd
df = pd.DataFrame({
	"A": ["A0", "A1", "A2", "A3"],
	"B": [pd.NA, "B1", pd.NA, "B3"],
	"key": ["K0", "K1", "K2", "K1"],}
)
"""
    A     B key
0  A0  <NA>  K0
1  A1    B1  K1
2  A2  <NA>  K2
3  A3    B3  K1
"""
df.columns = df.iloc[1, :].tolist()
print(df)
"""
K1	A1	B1
0	K0	A0	<NA>
1	K1	A1	B1
2	K2	A2	<NA>
3	K1	A3	B3
"""

最后更新日期:2022/7/8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值