前言:
前几天参加腾讯算法大赛,深感在数据处理时pandas的中各种包的强大,所以简单的记录一下Pandas中的几个库。这一节主要介绍pandas中的数据读取和保存相关的函数,分别是read_csv() 和 to_csv() 。
to_csv()函数讲解:
第一个参数表示将要保存的数据文件,
第二个参数表示保存数据时要不要加上行索引,默认为True
第三个参数表示是否加入标题,默认为True
Ad_Static_Feature_csv.to_csv('data/ad_static_feature_top10000.csv', index=False, header=False)
第一种情况是: 对于非cvs的数据集 如何保存cvs格式, 并增加对应的标题信息。此时使用to_csv()函数的时候,注意两种情况。
第一: 一定要使用header = false, 不然的话保存数据集的时候,会自动使用0-n作为数据的列名。
第二: 一定也要使用index=False, 不然的话保存数据的时候,会自动加上一个索引列。
# -*- coding: utf-8 -*-
# @Time : 2019/5/24 8:37
# @Author : YYLin
# @Email : GXY4250
# @File : storing_data.py
import pandas as pd
import time
# 将静态广告(ad_static_feature)转化成csv格式 对于创建时间这一列的数据集没有转化时间 待做 未完成
# 19-04-19 已经将静态广告数据中的时间戳转化成对应的时间
Ad_Static_Feature_Data = []
# 定义静态广告数据集中的列元素
Ad_Static_Feature_Data_columns = ['ad_id', 'Creation_time', 'Ad_account_id', 'Commodity_id', 'Commodity_type',
'Ad_Industry_Id', 'Ad_material_size']
Ad_Static_Feature_Data.append(Ad_Static_Feature_Data_columns)
with open('data/ad_static_feature_top10000.out', 'r') as f:
for i, line in enumerate(f):
# print(i, ':', line,'\n', len(line), type(line))
if i < 3:
print(line)
line = line.strip().split('\t')
# print(i, ':', line, '\n', type(line), len(line))
time_local = time.localtime(int(line[1]))
timestamp = time.strftime("%Y-%m-%d %H:%M:%S", time_local)
line[1] = timestamp
Ad_Static_Feature_Data.append(line)
Ad_Static_Feature_csv = pd.DataFrame(Ad_Static_Feature_Data)
Ad_Static_Feature_csv.to_csv('data/ad_static_feature_top10000.csv', index=False, header=False)
原始数据集
第二种情况是:原始数据为csv, 但是数据集中没有列名,保存数据集的时候需要保存为带有列的数据集。在这种情况下,最后使用to_csv()函数的时候,一定不能设置header=None。
read_csv()函数讲解:
第一个参数表示读取数据集的文件目录
第二个参数names表示文件的列名, 默认是第一行csv中的第一行数据的值,如果需要修改的话,也可以自定义一个列名。
第三个参数表示是不是使用第一行数据作为标题,默认为True,切记!!!!!!
1、如果原始数据中没有列名,一定要设置header=None。
2、如果原始数据中有标题信息,不能将其设置为header=None, 不然会把标题当成训练数据
user_Feature_columns = ['user_id', 'Age', 'Gender', 'Area', 'Marriage_Status', 'Education', 'Consuption_Ability', 'Device', 'Work_Status', 'Connection_Type', 'Behavior']
user_Feature_csv = pd.read_csv('data/user_data_top10000.csv', names=user_Feature_columns, header=None)
import pandas as pd
# 定义好一个列名
user_Feature_columns = ['user_id', 'Age', 'Gender', 'Area', 'Marriage_Status', 'Education', 'Consuption_Ability', 'Device',
'Work_Status', 'Connection_Type', 'Behavior']
user_Feature_csv = pd.read_csv('data/user_data_top10000.csv', names=user_Feature_columns, header=None)
print("增加列名之后的数据格式是:", user_Feature_csv.info())
user_Feature_csv.to_csv('data/user_Feature_have_col.csv', index=False)
原始数据集为cvs,但是没有标题
保存之后的数据集