Pandas快速入门之第一节数据的读取和保存

前言:

前几天参加腾讯算法大赛,深感在数据处理时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)

 

Pandas快速入门之第一节数据的读取和保存_第1张图片 原始数据集


 

Pandas快速入门之第一节数据的读取和保存_第2张图片 最后保存为csv的数据

 

第二种情况是:原始数据为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,但是没有标题

 

Pandas快速入门之第一节数据的读取和保存_第3张图片 保存之后的数据集

 

你可能感兴趣的:(Pandas快速入门)