import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
train_df=train_df=pd.read_csv(
'd:\\a\\train_set1.csv'
,sep=
'\t'
,nrows=
100)
train_df.head
引數:sep每列的分隔符,用『\t』分割,nrows=100,讀取100條資料
賽題資料中每行句子的字元使用空格進行分割,可通過直接統計單詞的個數得到每個句子的長度。
%pylab inline
train_df[
'text_len'
]=train_df[
'text'].
(lambda x:
len(x.split(
' ')))
print
(train_df[
'text_len'
].describe(
))
通過結果可知,句子長度均值在872,最短64 最長7125
檢視句子長度的直方圖:
_=plt.hist(train_df[
'text_len'
],bins=
200)
plt.xlabel(
'text char count'
)plt.title(
'histogram of char count'
)
[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-lddtpsxj-1595408686822)(d:\downlpad\288d01fbc2f9cd73258e1a8db9e8e41.png)]
檢視賽題資料的類別分布
通過繪製直方圖來檢視每個新聞類別的分布。
train_df[
'label'
].value_counts(
).plot(kind=
'bar'
)plt.title(
'new class count'
)plt.xlabel(
"category"
)
輸出結果:
[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-rt3gjwxd-1595408686824)(d:\downlpad\93494884acc7115cf6875b428d39a7b.png)]
通過結果可知,大部分的新聞分布是0,1,2 最少的是13,新聞的類別標識為:。
字元分布
統計每個字元出現的次數,將句子進行拼接進而劃分為字元,並統計每個字元的個數。通過統計,知道 3750 3702 5034 出現頻率最高推測其為標點符號。
使用lambda函式,先對train_df[『text』]的資料進行去重,然後拼接統計:
train_df[
'text_unique'
]= train_df[
'text'].
(lambda x:
' '.join(
list
(set
(x.split(
' ')))
))all_lines =
' '.join(
list
(train_df[
'text_unique'])
)word_count = counter(all_lines.split(
' ')
)word_count =
sorted
(word_count.items(
),key=
lambda d:
int(d[1]
),reverse=
true
)print
(len
(word_count)
)print
(word_count[0]
)print
(word_count[-1
])
可知:1.每個新聞的字元個數在900多,還有個別新聞較長,可能需要截斷;
2.新聞類別分布不均勻,會影響模型精度。
可知:1.每個新聞的字元個數在900多,還有個別新聞較長,可能需要截斷;
2.新聞類別分布不均勻,會影響模型精度。
Task2 資料讀取與資料分析
先用pandas讀取資料 train df pd.read csv data train set.csv sep t train df.head label為新聞類別,text為之後的文章內容。讀取資料後計算每條新聞的文字長度。用plt庫繪製直方圖。1 假設字元3750,字元900和字元648是句子...
Task 2 資料分析(EDA)
在此之前基本沒有關於python以及資料探勘的經驗,所以前期不管是庫的安裝還是按照指導pdf敲 都經常遇到錯誤,小白只能邊查邊改邊學,頭禿的同時也強迫自己學到了不少東西。前半部分的 還能勉強一邊敲一邊理解,後面只能走一下流程,粗略地了解一下eda的整體步驟,具體的 以及過程中蒐集的知識 遇到的問題將...
動手學資料分析 Task 2
常用的函式有dropna 和fillna dataframe.dropna axis 0,how any thresh none,subset none,inplace false 屬性說明 預設引數axis 0,根據索引 index 刪除指定的行 axis 1,根據列名 columns 刪除指定的...