python工具集pandas处理数据使用介绍
程序员文章站
2024-01-04 20:40:40
最近在处理数据的时候了解了一个超好用的工具集pandas,这篇笔记是对在pandas中用到的内容进行记录,防止遗忘。1.学习背景已有的分类数据集存在样本不均衡的情况,对数据集进行处理。2.做测试集打开.csv文件filename_list = pd.read_csv('path', header=None)[0]注:这里的路径要写到要打开的文件名。看该文件中数据的行数print(len(filename_list))提取数据做成DataFrame形式,为后续筛选做准备la...
最近在处理数据的时候了解了一个超好用的工具集pandas,这篇笔记是对在pandas中用到的内容进行记录,防止遗忘。
1.学习背景
已有的分类数据集存在样本不均衡的情况,对数据集进行处理。
2.做测试集
- 打开.csv文件
filename_list = pd.read_csv('path', header=None)[0]
注:这里的路径要写到要打开的文件名。
- 看该文件中数据的行数
print(len(filename_list))
- 提取数据做成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"])
- 筛选符合条件的数据
df_sub1 = filename_list[df['A'] == '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数据集分割的欠采样(用不同的数据训练多次,最终取参数的平均值)。
- 采样
pdtys2 = pdty2.sample(n=40000)
- 融合(合并)
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