import pandas as pd
train_data = pd.read_csv("train_data.csv", sep='|', nrows=500000) # 读取csv文件,以sep为分隔符,顺序取多少行
print(train_data.shape) # 查看数据维度
print(train_data.info()) # 查看数据基本信息
print(train_data.head) # 显示前5行
print(train_data.isnull().values.sum()) # 计算空值
train_data = train_data.sample(n=1000000, replace=False, axis=0) # 随机取多少行,axix=0表示行,replace表示不放回抽样
droplist = ['1', '2']
train_data = train_data.drop(droplist, axis=1) # 去掉特征列
train_data = train_data.astype('float') # 修改数据类型
train_data.to_excel('new_data.xlsx') # 保存为xlsx表
count_Class = train_data['label'].value_counts().sort_index() # 某一列包含的值的个数
print('\nNumber of normal and fraudulent transactions:\n', count_Class.head())
x_feature = list(train_data.columns) # 取特征列
X = train_data[x_feature] # 取训练集
y_pred = [] # 对于二分类,把每一条预测结果写入文档
res = pd.DataFrame(columns=('label',))
for i in range(0, 1000000):
res = res.append([{'label': y_pred[i]}], ignore_index=True)
if (i % 10000) == 0:
print("当前进行到第{}步".format(i))
res.to_csv("forecast result8.csv", index=False)
print(train_data.duplicated()) # 返回布尔型数据,告诉重复值的位置
print(train_data.duplicated().sum()) # 说明有100个重复值
print(train_data[train_data.duplicated()]) # 查看重复记录
train_data.drop_duplicates(inplace=True) # 删除重复记录 inplace=True表示直接在源数据上进行操作
sta = []
print(pd.concat([train_data[train_data.节省 > train_data.价格], train_data[sta.abs() > 3]]).index) # 返回行索引,concat拼接
# 处理文本类数据
print(train_data.酒店[:10])
# 提取酒店评分
train_data['酒店评分'] = train_data.酒店.str.extract('(\d.\d)分/5分', expand=False) # 只提取()内的类容
# 提取酒店等级
print(train_data.酒店.str.extract(' (.+) ', expand=False)[:5]) # 前后有空格,只提取中间全部内容
train_data['酒店等级'] = train_data.酒店.str.extract(' (.+) ',expand=False) # +号表示的是贪婪模式,也就是所有的数据都要提取出来
# 提取天数信息
train_data['天数'] = train_data.路线名.str.extract('(\d+)天\d晚',expand=False)
print(train_data.head())
转载请注明原文地址:https://blackberry.8miu.com/read-8291.html