pandas 个人常用

这篇博客介绍了Pandas库的基础用法,包括读取Excel数据、数据定位、修改与保存。还展示了如何修改列名、进行数据排序以及使用正则表达式处理字符串。此外,还涉及到了数据的分组和排序操作,如按题型和章节对数据进行排序。
摘要由CSDN通过智能技术生成

相关资料:

读与构建

import pandas as pd
import os
read_path = './data/习题.xlsx'
data = pd.read_excel(read_path, engine="openpyxl") # 通过文件加载
data = pd.read_excel(read_path , engine="openpyxl", header=1) # 第2行(index=1)作为列索引
new_excal = pd.DataFrame() # 空的

读取

a = data.iat[row, col] # 第row行,第col列 
data.iloc[:3,:2] #冒号前后的数字不再是索引的标签名称,而是数据所在的位置,从0开始,前三行,前两列。
print(data.loc[3]) # 提取下标为3的一整行
print(data.iloc[0:5])  # 提取下标为[0,5)的整行
print(data.loc[:,['景点名称', '推荐', '评分']])
print(data.loc[row]['景点名称']) # row为col_index, 即第row行,'景点名称'为列索引

修改数据

data.iat[row, col] = a + 1 # 修改第row行,第col列, 如果该行列原来不存在,报越界
new_excal.loc[row, col] = vv # 在第row行,第col列填入新数据

修改索引

1、修改列名a,b为A、B。
df.columns = ['A','B']
2、只修改列名a为A
df.rename(columns={'a':'A'})

保存

new_excal.to_excel('excel_to_python.xlsx')
new_excal.to_excel('excel_to_python.xlsx', sheet_name='bluewhale_cc', index=False, columns=True) # index,columns表示是否保留行或者列索引,这里是不要行索引,保留列索引
new_excal.to_csv('excel_to_python.csv') 

字符串查找

if tigan.find('()') == -1:
  tigan += '()。'
else:
  tigan += '。'

分组排序

data = pd.read_excel('./data/习题.xlsx', engine="openpyxl", header=1) # 通过文件加载

print(data.head)
print(data.shape)
print(data.columns)
row, col = data.shape

# # 首先按照题型进行分组
# grouped = data.groupby('题型')
# # 定义一个函数,用于在每个分组内按照章节进行排序
# def sort_by_chapter(group):
#     return group.sort_values(by='章节')
# # 对每个分组应用排序函数
# sorted_df = grouped.apply(sort_by_chapter)
# # 重置索引
# sorted_df.reset_index(drop=True, inplace=True)
# print(sorted_df)

# 指定题型的排序顺序
custom_order = ["单选题", "多选题", "判断题", "主观题"]
data['题型'] = pd.Categorical(data['题型'], categories=custom_order, ordered=True)
# 按照"题型"和"章节"两列进行排序
sorted_df = data.sort_values(by=['题型', '章节']).reset_index(drop=True) # 重置索引

data = sorted_df

正则表达式匹配

复杂一点的请交给chatgpt吧。
如何下一个python的正则表达式代码,替换下面字符串的题号:“1、这是一个题目。”

import re

text = "1、这是一个题目。"
pattern = r'^\d+、'  # 匹配以数字和一个逗号开头的模式

# 使用re.sub()函数进行替换
result = re.sub(pattern, '', text)

print(result)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ystraw_ah

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值