Python數(shù)據(jù)分析之pandas學習2018-04-22

(轉(zhuǎn))https://www.cnblogs.com/nxld/p/6058591.html

Python數(shù)據(jù)分析之pandas學習

Python中的pandas模塊進行數(shù)據(jù)分析囚企。

接下來pandas介紹中將學習到如下8塊內(nèi)容:
1栽燕、數(shù)據(jù)結(jié)構(gòu)簡介:DataFrame和Series
2奸腺、數(shù)據(jù)索引index
3、利用pandas查詢數(shù)據(jù)
4漫仆、利用pandas的DataFrames進行統(tǒng)計分析
5疲恢、利用pandas實現(xiàn)SQL操作
6爹袁、利用pandas進行缺失值的處理
7苹祟、利用pandas實現(xiàn)Excel的數(shù)據(jù)透視表功能
8、多層索引的使用


image

一亚铁、數(shù)據(jù)結(jié)構(gòu)介紹

在pandas中有兩類非常重要的數(shù)據(jù)結(jié)構(gòu)蝇刀,即序列Series和數(shù)據(jù)框DataFrame。Series類似于numpy中的一維數(shù)組徘溢,除了通吃一維數(shù)組可用的函數(shù)或方法吞琐,而且其可通過索引標簽的方式獲取數(shù)據(jù)捆探,還具有索引的自動對齊功能;DataFrame類似于numpy中的二維數(shù)組站粟,同樣可以通用numpy數(shù)組的函數(shù)和方法黍图,而且還具有其他靈活應用,后續(xù)會介紹到奴烙。

1助被、Series的創(chuàng)建

序列的創(chuàng)建主要有三種方式:

1)通過一維數(shù)組創(chuàng)建序列
  1. import numpy as np, pandas as pd

  2. arr1 = np.arange(10)

  3. arr1

  4. type(arr1)

  5. s1 = pd.Series(arr1)

  6. s1

  7. type(s1)

2)通過字典的方式創(chuàng)建序列
  1. dic1 = {'a':10,'b':20,'c':30,'d':40,'e':50}

  2. dic1

  3. type(dic1)

  4. s2 = pd.Series(dic1)

  5. s2

  6. type(s2)

3)通過DataFrame中的某一行或某一列創(chuàng)建序列

這部分內(nèi)容我們放在后面講,因為下面就開始將DataFrame的創(chuàng)建切诀。

2揩环、DataFrame的創(chuàng)建

數(shù)據(jù)框的創(chuàng)建主要有三種方式:

1)通過二維數(shù)組創(chuàng)建數(shù)據(jù)框
  1. arr2 = np.array(np.arange(12)).reshape(4,3)

  2. arr2

  3. type(arr2)

  4. df1 = pd.DataFrame(arr2)

  5. df1

  6. type(df1)

2)通過字典的方式創(chuàng)建數(shù)據(jù)框

以下以兩種字典來創(chuàng)建數(shù)據(jù)框,一個是字典列表幅虑,一個是嵌套字典丰滑。

  1. dic2 = {'a':[1,2,3,4],'b':[5,6,7,8],

  2. 'c':[9,10,11,12],'d':[13,14,15,16]}

  3. dic2

  4. type(dic2)

  5. df2 = pd.DataFrame(dic2)

  6. df2

  7. type(df2)

  8. dic3 = {'one':{'a':1,'b':2,'c':3,'d':4},

  9. 'two':{'a':5,'b':6,'c':7,'d':8},

  10. 'three':{'a':9,'b':10,'c':11,'d':12}}

  11. dic3

  12. type(dic3)

  13. df3 = pd.DataFrame(dic3)

  14. df3

  15. type(df3)

3)通過數(shù)據(jù)框的方式創(chuàng)建數(shù)據(jù)框
  1. df4 = df3[['one','three']]

  2. df4

  3. type(df4)

  4. s3 = df3['one']

  5. s3

  6. type(s3)

二、數(shù)據(jù)索引index

細致的朋友可能會發(fā)現(xiàn)一個現(xiàn)象倒庵,不論是序列也好褒墨,還是數(shù)據(jù)框也好,對象的最左邊總有一個非原始數(shù)據(jù)對象擎宝,這個是什么呢郁妈?不錯,就是我們接下來要介紹的索引认臊。
在我看來,序列或數(shù)據(jù)框的索引有兩大用處锄奢,一個是通過索引值或索引標簽獲取目標數(shù)據(jù)失晴,另一個是通過索引,可以使序列或數(shù)據(jù)框的計算拘央、操作實現(xiàn)自動化對齊涂屁,下面我們就來看看這兩個功能的應用。

1灰伟、通過索引值或索引標簽獲取數(shù)據(jù)

  1. s4 = pd.Series(np.array([1,1,2,3,5,8]))
  2. s4

如果不給序列一個指定的索引值拆又,則序列自動生成一個從0開始的自增索引±刚耍可以通過index查看序列的索引:

  1. s4.index

現(xiàn)在我們?yōu)樾蛄性O(shè)定一個自定義的索引值:

  1. s4.index = ['a','b','c','d','e','f']
  2. s4

序列有了索引帖族,就可以通過索引值或索引標簽進行數(shù)據(jù)的獲取:

  1. s4[3]
  2. s4['e']
  3. s4[[1,3,5]]
  4. s4[['a','b','d','f']]
  5. s4[:4]
  6. s4['c':]
  7. s4['b':'e']

千萬注意:如果通過索引標簽獲取數(shù)據(jù)的話挡爵,末端標簽所對應的值是可以返回的竖般!在一維數(shù)組中,就無法通過索引標簽獲取數(shù)據(jù)茶鹃,這也是序列不同于一維數(shù)組的一個方面涣雕。

2艰亮、自動化對齊

如果有兩個序列,需要對這兩個序列進行算術(shù)運算挣郭,這時索引的存在就體現(xiàn)的它的價值了—自動化對齊.

  1. s5 = pd.Series(np.array([10,15,20,30,55,80]),

  2. index = ['a','b','c','d','e','f'])

  3. s5

  4. s6 = pd.Series(np.array([12,11,13,15,14,16]),

  5. index = ['a','c','g','b','d','f'])

  6. s6

  7. s5 + s6

  8. s5/s6

由于s5中沒有對應的g索引迄埃,s6中沒有對應的e索引,所以數(shù)據(jù)的運算會產(chǎn)生兩個缺失值NaN兑障。注意侄非,這里的算術(shù)結(jié)果就實現(xiàn)了兩個序列索引的自動對齊,而非簡單的將兩個序列加總或相除旺垒。對于數(shù)據(jù)框的對齊彩库,不僅僅是行索引的自動對齊,同時也會自動對齊列索引(變量名)

數(shù)據(jù)框中同樣有索引先蒋,而且數(shù)據(jù)框是二維數(shù)組的推廣骇钦,所以其不僅有行索引,而且還存在列索引竞漾,關(guān)于數(shù)據(jù)框中的索引相比于序列的應用要強大的多眯搭,這部分內(nèi)容將放在數(shù)據(jù)查詢中講解。

三业岁、利用pandas查詢數(shù)據(jù)

這里的查詢數(shù)據(jù)相當于R語言里的subset功能鳞仙,可以通過布爾索引有針對的選取原數(shù)據(jù)的子集、指定行笔时、指定列等棍好。我們先導入一個student數(shù)據(jù)集:

  1. student = pd.io.parsers.read_csv('C:\\Users\\admin\\Desktop\\student.csv')

查詢數(shù)據(jù)的前5行或末尾5行

  1. student.head()
  2. student.tail()

查詢指定的行

  1. student.ix[[0,2,4,5,7]] #這里的ix索引標簽函數(shù)必須是中括號[]

查詢指定的列

  1. student[['Name','Height','Weight']].head() #如果多個列的話,必須使用雙重中括號

也可以通過ix索引標簽查詢指定的列

  1. student.ix[:,['Name','Height','Weight']].head()

查詢指定的行和列

  1. student.ix[[0,2,4,5,7],['Name','Height','Weight']].head()

以上是從行或列的角度查詢數(shù)據(jù)的子集允耿,現(xiàn)在我們來看看如何通過布爾索引實現(xiàn)數(shù)據(jù)的子集查詢借笙。
查詢所有女生的信息

  1. student[student['Sex']=='F']

查詢出所有12歲以上的女生信息

  1. student[(student['Sex']=='F') & (student['Age']>12)]

查詢出所有12歲以上的女生姓名、身高和體重

  1. student[(student['Sex']=='F') & (student['Age']>12)][['Name','Height','Weight']]

上面的查詢邏輯其實非常的簡單较锡,需要注意的是业稼,如果是多個條件的查詢,必須在&(且)或者|(或)的兩端條件用括號括起來蚂蕴。

四低散、統(tǒng)計分析

pandas模塊為我們提供了非常多的描述性統(tǒng)計分析的指標函數(shù),如總和骡楼、均值熔号、最小值、最大值等鸟整,我們來具體看看這些函數(shù):
首先隨機生成三組數(shù)據(jù)

  1. np.random.seed(1234)

  2. d1 = pd.Series(2*np.random.normal(size = 100)+3)

  3. d2 = np.random.f(2,4,size = 100)

  4. d3 = np.random.randint(1,100,size = 100)

  5. d1.count() #非空元素計算

  6. d1.min() #最小值

  7. d1.max() #最大值

  8. d1.idxmin() #最小值的位置跨嘉,類似于R中的which.min函數(shù)

  9. d1.idxmax() #最大值的位置,類似于R中的which.max函數(shù)

  10. d1.quantile(0.1) #10%分位數(shù)

  11. d1.sum() #求和

  12. d1.mean() #均值

  13. d1.median() #中位數(shù)

  14. d1.mode() #眾數(shù)

  15. d1.var() #方差

  16. d1.std() #標準差

  17. d1.mad() #平均絕對偏差

  18. d1.skew() #偏度

  19. d1.kurt() #峰度

  20. d1.describe() #一次性輸出多個描述性統(tǒng)計指標

必須注意的是,descirbe方法只能針對序列或數(shù)據(jù)框祠乃,一維數(shù)組是沒有這個方法的

這里自定義一個函數(shù)梦重,將這些統(tǒng)計描述指標全部匯總到一起:

  1. def stats(x):
  2. return pd.Series([x.count(),x.min(),x.idxmin(),
  3. x.quantile(.25),x.median(),
  4. x.quantile(.75),x.mean(),
  5. x.max(),x.idxmax(),
  6. x.mad(),x.var(),
  7. x.std(),x.skew(),x.kurt()],
  8. index = ['Count','Min','Whicn_Min',
  9. 'Q1','Median','Q3','Mean',
  10. 'Max','Which_Max','Mad',
  11. 'Var','Std','Skew','Kurt'])
  12. stats(d1)

在實際的工作中,我們可能需要處理的是一系列的數(shù)值型數(shù)據(jù)框亮瓷,如何將這個函數(shù)應用到數(shù)據(jù)框中的每一列呢琴拧?可以使用apply函數(shù),這個非常類似于R中的apply的應用方法嘱支。
將之前創(chuàng)建的d1,d2,d3數(shù)據(jù)構(gòu)建數(shù)據(jù)框:

  1. df = pd.DataFrame(np.array([d1,d2,d3]).T,columns=['x1','x2','x3'])
  2. df.head()
  3. df.apply(stats)

非常完美蚓胸,就這樣很簡單的創(chuàng)建了數(shù)值型數(shù)據(jù)的統(tǒng)計性描述。如果是離散型數(shù)據(jù)呢除师?就不能用這個統(tǒng)計口徑了沛膳,我們需要統(tǒng)計離散變量的觀測數(shù)、唯一值個數(shù)汛聚、眾數(shù)水平及個數(shù)锹安。你只需要使用describe方法就可以實現(xiàn)這樣的統(tǒng)計了。

  1. student['Sex'].describe()

除以上的簡單描述性統(tǒng)計之外倚舀,還提供了連續(xù)變量的相關(guān)系數(shù)(corr)和協(xié)方差矩陣(cov)的求解叹哭,這個跟R語言是一致的用法。

  1. df.corr()

關(guān)于相關(guān)系數(shù)的計算可以調(diào)用pearson方法或kendell方法或spearman方法痕貌,默認使用pearson方法风罩。

  1. df.corr('spearman')

如果只想關(guān)注某一個變量與其余變量的相關(guān)系數(shù)的話,可以使用corrwith,如下方只關(guān)心x1與其余變量的相關(guān)系數(shù):

  1. df.corrwith(df['x1'])

數(shù)值型變量間的協(xié)方差矩陣

  1. df.cov()

    五舵稠、類似于SQL的操作

    在SQL中常見的操作主要是增超升、刪、改哺徊、查幾個動作室琢,那么pandas能否實現(xiàn)對數(shù)據(jù)的這幾項操作呢?答案是Of Course!

    增:添加新行或增加新列
    1. In [99]: dic = {'Name':['LiuShunxiang','Zhangshan'],

    2. ...: 'Sex':['M','F'],'Age':[27,23],

    3. ...: 'Height':[165.7,167.2],'Weight':[61,63]}

    4. In [100]: student2 = pd.DataFrame(dic)

    5. In [101]: student2

    6. Out[101]:

    7. Age Height Name Sex Weight

    8. 0 27 165.7 LiuShunxiang M 61

    9. 1 23 167.2 Zhangshan F 63

    現(xiàn)在將student2中的數(shù)據(jù)新增到student中唉工,可以通過concat函數(shù)實現(xiàn):


    image

    注意到了嗎研乒?在數(shù)據(jù)庫中union必須要求兩張表的列順序一致汹忠,而這里concat函數(shù)可以自動對齊兩個數(shù)據(jù)框的變量淋硝!

    新增列的話,其實在pandas中就更簡單了宽菜,例如在student2中新增一列學生成績:


    image

    對于新增的列沒有賦值谣膳,就會出現(xiàn)空NaN的形式。

    刪:刪除表铅乡、觀測行或變量列

    刪除數(shù)據(jù)框student2,通過del命令實現(xiàn)继谚,該命令可以刪除Python的所有對象。


    image

    刪除指定的行


    image

    原數(shù)據(jù)中的第1,2,4,7行的數(shù)據(jù)已經(jīng)被刪除了阵幸。
    根據(jù)布爾索引刪除行數(shù)據(jù)花履,其實這個刪除就是保留刪除條件的反面數(shù)據(jù)芽世,例如刪除所有14歲以下的學生:


    image

    刪除指定的列


    image

    我們發(fā)現(xiàn),不論是刪除行還是刪除列诡壁,都可以通過drop方法實現(xiàn)济瓢,只需要設(shè)定好刪除的軸即可,即調(diào)整drop方法中的axis參數(shù)妹卿。默認該參數(shù)為0旺矾,表示刪除行觀測,如果需要刪除列變量夺克,則需設(shè)置為1箕宙。

    改:修改原始記錄的值

    如果發(fā)現(xiàn)表中的某些數(shù)據(jù)錯誤了,如何更改原來的值呢铺纽?我們試試結(jié)合布爾索引和賦值的方法:
    例如發(fā)現(xiàn)student3中姓名為Liushunxiang的學生身高錯了柬帕,應該是173,如何改呢室囊?


    image

    這樣就可以把原來的身高修改為現(xiàn)在的170了雕崩。
    看,關(guān)于索引的操作非常靈活融撞、方便吧盼铁,就這樣輕松搞定數(shù)據(jù)的更改。

    查:有關(guān)數(shù)據(jù)查詢部分尝偎,上面已經(jīng)介紹過饶火,下面重點講講聚合、排序和多表連接操作致扯。
    聚合:pandas模塊中可以通過groupby()函數(shù)實現(xiàn)數(shù)據(jù)的聚合操作

    根據(jù)性別分組肤寝,計算各組別中學生身高和體重的平均值:


    image

    如果不對原始數(shù)據(jù)作限制的話,聚合函數(shù)會自動選擇數(shù)值型數(shù)據(jù)進行聚合計算抖僵。如果不想對年齡計算平均值的話鲤看,就需要剔除改變量:


    image

    groupby還可以使用多個分組變量,例如根本年齡和性別分組耍群,計算身高與體重的平均值:


    image

    當然义桂,還可以對每個分組計算多個統(tǒng)計量:


    image

    是不是很簡單,只需一句就能完成SQL中的SELECT…FROM…GROUP BY…功能蹈垢,何樂而不為呢慷吊?

    排序:

    排序在日常的統(tǒng)計分析中還是比較常見的操作,我們可以使用order曹抬、sort_index和sort_values實現(xiàn)序列和數(shù)據(jù)框的排序工作:


    image

    我們再試試降序排序的設(shè)置:


    image

    上面兩個結(jié)果其實都是按值排序溉瓶,并且結(jié)果中都給出了警告信息,即建議使用sort_values()函數(shù)進行按值排序。

    在數(shù)據(jù)框中一般都是按值排序堰酿,例如:


    image
    多表連接:

    多表之間的連接也是非常常見的數(shù)據(jù)庫操作疾宏,連接分內(nèi)連接和外連接,在數(shù)據(jù)庫語言中通過join關(guān)鍵字實現(xiàn)触创,pandas我比較建議使用merger函數(shù)實現(xiàn)數(shù)據(jù)的各種連接操作灾锯。
    如下是構(gòu)造一張學生的成績表:


    image

    現(xiàn)在想把學生表student與學生成績表score做一個關(guān)聯(lián),該如何操作呢嗅榕?


    image

    注意顺饮,默認情況下,merge函數(shù)實現(xiàn)的是兩個表之間的內(nèi)連接凌那,即返回兩張表中共同部分的數(shù)據(jù)兼雄。可以通過how參數(shù)設(shè)置連接的方式帽蝶,left為左連接赦肋;right為右連接;outer為外連接励稳。


    image

    左連接實現(xiàn)的是保留student表中的所有信息佃乘,同時將score表的信息與之配對,能配多少配多少驹尼,對于沒有配對上的Name趣避,將會顯示成績?yōu)镹aN。

  2. 六新翎、缺失值處理

    現(xiàn)實生活中的數(shù)據(jù)是非常雜亂的程帕,其中缺失值也是非常常見的,對于缺失值的存在可能會影響到后期的數(shù)據(jù)分析或挖掘工作地啰,那么我們該如何處理這些缺失值呢愁拭?常用的有三大類方法,即刪除法亏吝、填補法和插值法岭埠。
    刪除法:當數(shù)據(jù)中的某個變量大部分值都是缺失值,可以考慮刪除改變量蔚鸥;當缺失值是隨機分布的惜论,且缺失的數(shù)量并不是很多是,也可以刪除這些缺失的觀測株茶。
    替補法:對于連續(xù)型變量来涨,如果變量的分布近似或就是正態(tài)分布的話图焰,可以用均值替代那些缺失值启盛;如果變量是有偏的,可以使用中位數(shù)來代替那些缺失值;對于離散型變量僵闯,我們一般用眾數(shù)去替換那些存在缺失的觀測卧抗。
    插補法:插補法是基于蒙特卡洛模擬法,結(jié)合線性模型鳖粟、廣義線性模型社裆、決策樹等方法計算出來的預測值替換缺失值。

    我們這里就介紹簡單的刪除法和替補法:


    image

    這是一組含有缺失值的序列向图,我們可以結(jié)合sum函數(shù)和isnull函數(shù)來檢測數(shù)據(jù)中含有多少缺失值:

    1. In [130]: sum(pd.isnull(s))
    2. Out[130]: 9

    直接刪除缺失值


    image

    默認情況下泳秀,dropna會刪除任何含有缺失值的行,我們再構(gòu)造一個數(shù)據(jù)框試試:


    image

    返回結(jié)果表明榄攀,數(shù)據(jù)中只要含有缺失值NaN,該數(shù)據(jù)行就會被刪除嗜傅,如果使用參數(shù)how=’all’,則表明只刪除所有行為缺失值的觀測檩赢。


    image

    使用一個常量來填補缺失值吕嘀,可以使用fillna函數(shù)實現(xiàn)簡單的填補工作:
    1)用0填補所有缺失值


    image

    2)采用前項填充或后向填充


    image

    3)使用常量填充不同的列


    image

    4)用均值或中位數(shù)填充各自的列


    image

    很顯然,在使用填充法時贞瞒,相對于常數(shù)填充或前項偶房、后項填充,使用各列的眾數(shù)军浆、均值或中位數(shù)填充要更加合理一點棕洋,這也是工作中常用的一個快捷手段。

    七乒融、數(shù)據(jù)透視表

    在Excel中有一個非常強大的功能就是數(shù)據(jù)透視表锈麸,通過托拉拽的方式可以迅速的查看數(shù)據(jù)的聚合情況,這里的聚合可以是計數(shù)只磷、求和简软、均值、標準差等碟摆。
    pandas為我們提供了非常強大的函數(shù)pivot_table()晃财,該函數(shù)就是實現(xiàn)數(shù)據(jù)透視表功能的。對于上面所說的一些聚合函數(shù)典蜕,可以通過參數(shù)aggfunc設(shè)定断盛。我們先看看這個函數(shù)的語法和參數(shù)吧:

    1. pivot_table(data,values=None,
    2. index=None,
    3. columns=None,
    4. aggfunc='mean',
    5. fill_value=None,
    6. margins=False,
    7. dropna=True,
    8. margins_name='All')
    9. data:需要進行數(shù)據(jù)透視表操作的數(shù)據(jù)框
    10. values:指定需要聚合的字段
    11. index:指定某些原始變量作為行索引
    12. columns:指定哪些離散的分組變量
    13. aggfunc:指定相應的聚合函數(shù)
    14. fill_value:使用一個常數(shù)替代缺失值,默認不替換
    15. margins:是否進行行或列的匯總愉舔,默認不匯總
    16. dropna:默認所有觀測為缺失的列
    17. margins_name:默認行匯總或列匯總的名稱為'All'

    我們?nèi)匀灰詓tudent表為例钢猛,來認識一下數(shù)據(jù)透視表pivot_table函數(shù)的用法:
    對一個分組變量(Sex),一個數(shù)值變量(Height)作統(tǒng)計匯總


    image

    對一個分組變量(Sex)轩缤,兩個數(shù)值變量(Height,Weight)作統(tǒng)計匯總


    image

    對兩個分組變量(Sex命迈,Age)贩绕,兩個數(shù)值變量(Height,Weight)作統(tǒng)計匯總


    image

    很顯然這樣的結(jié)果并不像Excel中預期的那樣,該如何變成列聯(lián)表的形式的壶愤?很簡單淑倾,只需將結(jié)果進行非堆疊操作(unstack)即可:


    image

    看,這樣的結(jié)果是不是比上面那種看起來更舒服一點征椒?

    使用多個聚合函數(shù)


    image

    有關(guān)更多數(shù)據(jù)透視表的操作娇哆,可參考《Pandas透視表(pivot_table)詳解》一文,鏈接地址:http://python.jobbole.com/81212/

    八勃救、多層索引的使用

    最后我們再來講講pandas中的一個重要功能碍讨,那就是多層索引。在序列中它可以實現(xiàn)在一個軸上擁有多個索引蒙秒,就類似于Excel中常見的這種形式:


    image

    對于這樣的數(shù)據(jù)格式有什么好處呢垄开?pandas可以幫我們實現(xiàn)用低維度形式處理高維數(shù)數(shù)據(jù),這里舉個例子也許你就能明白了:


    image

    對于這種多層次索引的序列税肪,取數(shù)據(jù)就顯得非常簡單了:


    image

    對于這種多層次索引的序列溉躲,我們還可以非常方便的將其轉(zhuǎn)換為數(shù)據(jù)框的形式:


    image

    以上針對的是序列的多層次索引,數(shù)據(jù)框也同樣有多層次的索引益兄,而且每條軸上都可以有這樣的索引锻梳,就類似于Excel中常見的這種形式:


    image

    我們不妨構(gòu)造一個類似的高維數(shù)據(jù)框:


    image

    同樣,數(shù)據(jù)框中的多層索引也可以非常便捷的取出大塊數(shù)據(jù):


    image

    在數(shù)據(jù)框中使用多層索引净捅,可以將整個數(shù)據(jù)集控制在二維表結(jié)構(gòu)中疑枯,這對于數(shù)據(jù)重塑和基于分組的操作(如數(shù)據(jù)透視表的生成)比較有幫助。
    就拿student二維數(shù)據(jù)框為例蛔六,我們構(gòu)造一個多層索引數(shù)據(jù)集:


    image

    講到這里荆永,我們關(guān)于pandas模塊的學習基本完成,其實在掌握了pandas這8個主要的應用方法就可以靈活的解決很多工作中的數(shù)據(jù)處理国章、統(tǒng)計分析等任務(wù)具钥。有關(guān)更多的pandas介紹,可參考pandas官方文檔:http://pandas.pydata.org/pandas-docs/version/0.17.0/whatsnew.html液兽。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末骂删,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子四啰,更是在濱河造成了極大的恐慌宁玫,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件柑晒,死亡現(xiàn)場離奇詭異欧瘪,居然都是意外死亡,警方通過查閱死者的電腦和手機匙赞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門佛掖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來妖碉,“玉大人,你說我怎么就攤上這事苦囱。” “怎么了脾猛?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵撕彤,是天一觀的道長。 經(jīng)常有香客問我猛拴,道長羹铅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任愉昆,我火速辦了婚禮职员,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘跛溉。我一直安慰自己焊切,他們只是感情好,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布芳室。 她就那樣靜靜地躺著专肪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪堪侯。 梳的紋絲不亂的頭發(fā)上嚎尤,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機與錄音伍宦,去河邊找鬼芽死。 笑死,一個胖子當著我的面吹牛次洼,可吹牛的內(nèi)容都是我干的关贵。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼卖毁,長吁一口氣:“原來是場噩夢啊……” “哼坪哄!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起势篡,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤翩肌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后禁悠,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體念祭,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年碍侦,在試婚紗的時候發(fā)現(xiàn)自己被綠了粱坤。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片隶糕。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖站玄,靈堂內(nèi)的尸體忽然破棺而出枚驻,到底是詐尸還是另有隱情,我是刑警寧澤株旷,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布再登,位于F島的核電站,受9級特大地震影響晾剖,放射性物質(zhì)發(fā)生泄漏锉矢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一齿尽、第九天 我趴在偏房一處隱蔽的房頂上張望沽损。 院中可真熱鬧,春花似錦循头、人聲如沸绵估。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽壹士。三九已至,卻和暖如春偿警,著一層夾襖步出監(jiān)牢的瞬間躏救,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工螟蒸, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留盒使,地道東北人。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓七嫌,卻偏偏與公主長得像少办,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子诵原,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容