欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python工具集pandas处理数据使用介绍

程序员文章站 2022-03-25 14:48:12
最近在处理数据的时候了解了一个超好用的工具集pandas,这篇笔记是对在pandas中用到的内容进行记录,防止遗忘。1.学习背景已有的分类数据集存在样本不均衡的情况,对数据集进行处理。2.做测试集打开.csv文件filename_list = pd.read_csv('path', header=None)[0]注:这里的路径要写到要打开的文件名。看该文件中数据的行数print(len(filename_list))提取数据做成DataFrame形式,为后续筛选做准备la...

最近在处理数据的时候了解了一个超好用的工具集pandas,这篇笔记是对在pandas中用到的内容进行记录,防止遗忘。

1.学习背景

已有的分类数据集存在样本不均衡的情况,对数据集进行处理。

2.做测试集

  1. 打开.csv文件
filename_list = pd.read_csv('path', header=None)[0] 

注:这里的路径要写到要打开的文件名。

  1. 看该文件中数据的行数
print(len(filename_list)) 
  1. 提取数据做成DataFrame形式,为后续筛选做准备
labels = [] for i in tqdm(filename_list): t = re.findall(r"\d+\.?\d*", i) labels.append(t) temp = np.array(labels) df = pd.DataFrame(temp, columns=["A", "B", "C", "D"]) 
  1. 筛选符合条件的数据
df_sub1 = filename_list[df['A'] == '1'] 
  1. 将符合条件的数据写入文件
# 1. 创建文件对象 f = open('test.csv', 'w', encoding='utf-8', newline='') # 2. 基于文件对象构建 csv写入对象 csv_writer = csv.writer(f) # 4. 写入csv文件内容 for j in df_sub1.values: csv_writer.writerow([j]) # 5. 关闭文件 f.close() 

3.做训练集

注:
1. 这1步用的方法比较笨,没有找到两个.csv文件相减的方法,后面如果有时间需要做一做。(这里是逐渐挑选判断+两个DataFrame融合的方法)
2. 采样目前用的是随机抽取,简单粗暴的让每个类别基础数据相等的方法。后面有时间可以学习下SMOTE算法(在数据没有这么多的情况下,增加数量少的那一种样本)+基于DataFrame数据集分割的欠采样(用不同的数据训练多次,最终取参数的平均值)。

  1. 采样
pdtys2 = pdty2.sample(n=40000) 
  1. 融合(合并)
df_subtest = pd.merge(df_sub5, df_sub10, how="outer") train1 = pd.concat([df_sub1,df_sub2,df_sub3, ], axis=0) 

注:1.pd.merge()2.pd.concat()对象数量和结果有区别,建议两个进行融合选择merge。 

本文地址:https://blog.csdn.net/Y2398Y/article/details/108870550