import numpy as np
import pandas as pd
# num = np.loadtxt('E:\\ult.txt',str,delimiter=',')
# print(num)
#读取文件
table = pd.read_table('E:\\ult.txt',sep=',')
#===================给每列起列名
table.columns = ['age','workclass','fnlwgt','education','education-time','marital-status','occupation',
'roles','race','sex','capital-gain','capital-loss','hours','country','result']
#==================读取文件信息
# print(table)
#===================读取前几行文件信息
# print(table.head(10))
#====================读取后几行文件信息
# print(table.tail(10))
#====================只看数据
# print(table.values)
#=====================对数据集进行转置
# print(table.T)
# =======================排序
# 对数据集进行排序(轴,索引)
#print(table.sort_index(axis=0))
#根据age,result排序从小到大
# print(table.sort_index(by=['age','result']))
#====================查看数据
#查看指定列
# print(table['age'])
# print(table.age)
#查看指定范围的行
#print(table[1:3])
#查看指定行列的,连续行列
# print(table.loc[0:3,'age':'education'])
# 查看指定行列的,非连续列
# print(table.loc[0:3,['age','workclass','result']])
# 查看指定行,某列值
# print(table.loc[2,'age':'education'])
# 查看具体某个值
# print(table.loc[2,'age'])
# 快速查询某个值
# print(table.at[2,'age'])
# ======================通过位置来取数据
# print(table.iloc[0:3,0:3])#取前三行三列的数据
# print(table.iloc[1:8]) #取前八行数据
# 前面的数据代表行号,取出一行数据,行列自动转换
# print(table.iloc[1,0:3])
# 取非连续性数据
# print(table.iloc[0:3,[0,2]])
# print(table.iloc[1,[0,2]])
# 指定行做切割
# print(table.iloc[0:3])
# 指定列做切割
# print(table.iloc[:,0:3])
# 过滤数据(支持大于等于小于,不支持字符串)
# print(table[table.age>50])
# 修改数据(不会更改原始数据)
# table = table.workclass.str.strip().replace('?','0')
# print(table[25:30])
# =====================删除重复的数据
# drop_duplicates
# 其中str是pandas.core.strings.StringMethods对象,拥有str都有的方法,而且作用一致
# 注:实现方式:继承
'''
drop_duplicates函数用于删除Series、DataFrame中重复记录,并返回删除重复后的结果
pandas.DataFrame.drop_duplicates(self, subset=None, keep='first', inplace=False)
pandas.Series.drop_duplicates(self, keep='first', inplace=False)
subset:用于识别重复的列标签或列标签序列,默认所有列标签
keep=‘frist’:除了第一次出现外,其余相同的被标记为重复
keep='last':除了最后一次出现外,其余相同的被标记为重复
keep=False:所有相同的都被标记为重复
inplace=True表示在原DataFrame上执行删除操作
inplace=False返回一个副本
'''
# table1 = table.drop_duplicates(['workclass'],keep='first',inplace=True)
# =============================转存数据
# 将长数字串转为字符串,否则会用科学技术法表示
table.fnlwgt=table.fnlwgt.astype('str')
# 转存excel(openpyxl库)
table.to_excel('test.xlsx',index=False)