了解数据
读取数据
说明:数据按照tab的方式分隔
df = pd.read_csv('../input/data_train.csv',sep = '\t',encoding='GBK',header=None,names=['id','a','b','c'])
保存数据
df.to_csv('../input/train.csv',index =False,encoding = 'utf-8')
数据的各种信息
#数据概览
df.info()
df.describe()
df.isnull().sum()#查看每一列缺失值情况
df_train["label"].value_counts() #查看这一列的值统计
数据处理
DataFrame拆分
说明:按照某一列的值拆分成几个小的DataFrame(笨办法)
df_train中,行业那一列的取值为{“食品餐饮”}
df_train1 = df_train[df_train['hangye']=="食品餐饮"]
df_train2 = df_train[df_train['hangye']=="旅游住宿"]
df_train3 = df_train[df_train['hangye']=="金融服务"]
df_train4 = df_train[df_train['hangye']=="医疗服务"]
DataFrame 分组
group1 = df.groupby(['hang','label']) #对数据分组
group1.count() #显示分组完后数据的count值 ##还可以有其他的信息
DataFrame随机选取数据
new_df = df[df.label==2].sample(n=200) #随机选取200条标签为2的数据
new_df.sample(frac=1) #shuffle数据,frac = 1代表选择全部的数据
df = df.sample(frac=1).reset_index(drop=True) # 重置索引
创建空的DataFrame
说明:创建空的dataFrame,逐行添加数据
df = pd.DataFrame()
for indexs in df.index:
value =list( df.iloc[indexs].values[0:])
# print(value)
i = value.index(max(value))
# max() python 内置的求最大值函数
# list.index()求索引(位置)
raw = pd.DataFrame({"id":indexs,"label":i},index=["0"])#此处为dataFrame
# print(raw)
df = df.append(raw,ignore_index = True)
文本相关
# 空白的处理方式
def fillnull(x):
if x == '':
return '空'
else:
return x
df_train['discuss']= df_train['discuss'].map(lambda x: fillnull(x))
# 去掉句子里面的标点符号
stri = re.sub(r'[\s+\.\!\/_,$%^*(+\"\']+|[+——!,。??、~@#¥%……&*()][ ]','',str(stri))
参考:
1. Shuffle DataFrame rows
结语:解决问题的时候百度了各种资料,本人比较懒,就不去再挨个找出来啦