機器學(xué)習(xí)入門筆記二 pandas基本操作

pandas 是基于NumPy 的一種工具,pandas就是字典型的numpy,就是numpy像是一個列表,pandas就更像是一個字典。 利用pandas可以高效的操作大型數(shù)據(jù)集,因為其中包含了大量快速便捷的處理數(shù)據(jù)的函數(shù)和方法充择。

讀入數(shù)據(jù)

下面是常見的支持的可讀入數(shù)據(jù)


image.png

常用的方法為前兩個德玫,所以以下例子就舉前兩個。

#注意read_table需要指定分隔符,用參數(shù) sep 指定 
#read_table可讀取txt文件
iris_text = pd.read_table('https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data',
                         sep = ',')
#這里我是使用網(wǎng)頁鏈接讀取的uci數(shù)據(jù)集上的鳶尾花數(shù)據(jù)集椎麦,有興趣可以上uci數(shù)據(jù)集官網(wǎng)去看看
iris_csv =  pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data')
print(iris_text.head())
print('--------------------------------------')
print(iris_csv.head())
   5.1  3.5  1.4  0.2  Iris-setosa
0  4.9  3.0  1.4  0.2  Iris-setosa
1  4.7  3.2  1.3  0.2  Iris-setosa
2  4.6  3.1  1.5  0.2  Iris-setosa
3  5.0  3.6  1.4  0.2  Iris-setosa
4  5.4  3.9  1.7  0.4  Iris-setosa
--------------------------------------
   5.1  3.5  1.4  0.2  Iris-setosa
0  4.9  3.0  1.4  0.2  Iris-setosa
1  4.7  3.2  1.3  0.2  Iris-setosa
2  4.6  3.1  1.5  0.2  Iris-setosa
3  5.0  3.6  1.4  0.2  Iris-setosa

數(shù)據(jù)結(jié)構(gòu)

Pandas有兩個主要的數(shù)據(jù)結(jié)構(gòu):Series和DataFrame宰僧。 Series類似Numpy中的一維數(shù)組,DataFrame則是使用較多的多維表格數(shù)據(jù)結(jié)構(gòu)观挎,這里主要介紹的是dataframe琴儿。
Series
一維數(shù)組,與Numpy中的一維array類似嘁捷。二者與Python基本的數(shù)據(jù)結(jié)構(gòu)List也很相近造成,其區(qū)別是:List中的元素可以是不同的數(shù)據(jù)類型,而Array和Series中則只允許存儲相同的數(shù)據(jù)類型雄嚣,這樣可以更有效的使用內(nèi)存晒屎,提高運算效率。 Pandas的數(shù)據(jù)類型實際上就是一個數(shù)據(jù)對應(yīng)一個索引(行標)缓升,還可以有列標鼓鲁。對于一維的series是沒有columns的定義的。

#生成一個series
test_series1 = pd.Series([1,2,3])
#指定索引
test_series2  = pd.Series([1,2,3],index = ['a','b','c'])
#這里用enumerate函數(shù)做比較
test3 = list(enumerate([1,2,3])) #enumerate函數(shù)返回一個索引序列港谊,同時列出數(shù)據(jù)和數(shù)據(jù)下標
print(test_series1)
print('-----------------------------')
print(test_series2 )
print('-----------------------------')
print(test3)
0    1
1    2
2    3
dtype: int64
-----------------------------
a    1
b    2
c    3
dtype: int64
-----------------------------
[(0, 1), (1, 2), (2, 3)]

DataFrame

二維的表格型數(shù)據(jù)結(jié)構(gòu),可以將DataFrame理解為Series的容器骇吭。 DataFrame可以跟Numpy一樣根據(jù)索引取出其中的數(shù)據(jù),只是DataFrame索引方式更加多樣化歧寺。DataFrame不僅可以根據(jù)默認的行列編號來索引燥狰,還可以根據(jù)標簽序列來索引。行標簽index成福,列標簽columns碾局。

上面鳶尾花數(shù)據(jù)集讀進來其實就是一個DataFrame。

#創(chuàng)建一個時間索引奴艾,periods指定長度
dates = pd.date_range('20180516',periods=6)
#以時間索引創(chuàng)建一個二維dataframe
df = pd.DataFrame(np.random.randint(6,size=(6,4)),index=dates,
                columns=['a','b','c','d'])
print(df)
            a  b  c  d
2018-05-16  2  3  2  2
2018-05-17  2  0  0  2
2018-05-18  1  1  1  0
2018-05-19  1  5  5  4
2018-05-20  1  4  2  0
2018-05-21  5  4  3  1

還可以用字典的方式來創(chuàng)建dataframe净当,因為dataframe就像是一個字典。

df = pd.DataFrame({'a':1,'b':'hello python','c':np.arange(2),
                    'd':['o','k'],'e':['你','好']})
print(df)
   a             b  c  d  e
0  1  hello python  0  o  你
1  1  hello python  1  k  好

Dataframe的屬性多樣蕴潦,以下為幾種常用的:

  • dtype:查看數(shù)據(jù)類型 像啼。
  • index:查看行序列或者索引 。
  • columns:查看各列的標簽 潭苞。
  • values:查看數(shù)據(jù)框內(nèi)的數(shù)據(jù)忽冻,也即不含表頭索引的數(shù)據(jù) 。
  • info:返回當(dāng)前的信息,有無nan值和內(nèi)存占用此疹,數(shù)據(jù)類型等僧诚。
  • describe() :查看數(shù)據(jù)的一些信息遮婶,如每一列的極值,均值湖笨,中位數(shù)之類 的旗扑,只能對數(shù)值型數(shù)據(jù)統(tǒng)計信息 。
  • transpose() :轉(zhuǎn)置慈省,也可用T來操作 臀防。
  • sort_index() :排序,可按行或列index排序輸出 边败。
  • sort_values() : 按數(shù)據(jù)值來排序袱衷。
  • cov():得到協(xié)方差矩陣。
  • corr(): 得到相關(guān)性矩陣笑窜。
  • value_counts(): 可統(tǒng)計不同值個數(shù)致燥。

以下還是用鳶尾花數(shù)據(jù)集解釋
查看當(dāng)前信息

# 查看當(dāng)前信息
print(iris_csv.info())
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 149 entries, 0 to 148
Data columns (total 5 columns):
5.1            149 non-null float64
3.5            149 non-null float64
1.4            149 non-null float64
0.2            149 non-null float64
Iris-setosa    149 non-null object
dtypes: float64(4), object(1)
memory usage: 5.9+ KB
None

查看統(tǒng)計信息

# 查看統(tǒng)計信息
print(iris_csv.describe())
#當(dāng)然也可以直接用min(),mean()這些去得到返回值,用法和numpy相同
              5.1         3.5         1.4         0.2
count  149.000000  149.000000  149.000000  149.000000
mean     5.848322    3.051007    3.774497    1.205369
std      0.828594    0.433499    1.759651    0.761292
min      4.300000    2.000000    1.000000    0.100000
25%      5.100000    2.800000    1.600000    0.300000
50%      5.800000    3.000000    4.400000    1.300000
75%      6.400000    3.300000    5.100000    1.800000
max      7.900000    4.400000    6.900000    2.500000

排序

#排序怖侦,分為按值排序和按索引排序
#按索引排序,默認是從小到大篡悟,可以指定ascending=false從大到小排序
"""按行標簽從大到小排序"""
print(iris_csv.sort_index(axis=0,ascending=False)[:5])

print('----------------------------------------')

#按值排序,默認是從小到大匾寝,可以指定ascending=false從小到大排序
'''按1.4列值從大到小排序'''
print(iris_csv.sort_values(by="1.4")[:5]) 
     5.1  3.5  1.4  0.2     Iris-setosa
148  5.9  3.0  5.1  1.8  Iris-virginica
147  6.2  3.4  5.4  2.3  Iris-virginica
146  6.5  3.0  5.2  2.0  Iris-virginica
145  6.3  2.5  5.0  1.9  Iris-virginica
144  6.7  3.0  5.2  2.3  Iris-virginica
----------------------------------------
    5.1  3.5  1.4  0.2  Iris-setosa
21  4.6  3.6  1.0  0.2  Iris-setosa
12  4.3  3.0  1.1  0.1  Iris-setosa
34  5.0  3.2  1.2  0.2  Iris-setosa
13  5.8  4.0  1.2  0.2  Iris-setosa
37  4.4  3.0  1.3  0.2  Iris-setosa

協(xié)方差矩陣

print(iris_csv.cov())  #協(xié)方差矩陣和相關(guān)性矩陣在分析中可是很重要的


          5.1       3.5       1.4       0.2
5.1  0.686568 -0.037279  1.270362  0.515347
3.5 -0.037279  0.187921 -0.316731 -0.115749
1.4  1.270362 -0.316731  3.096372  1.289124
0.2  0.515347 -0.115749  1.289124  0.579566

相關(guān)系數(shù)矩陣
這個相關(guān)系數(shù)矩陣可是很重要的搬葬,相關(guān)矩陣第i行第j列的元素就是原矩陣第i列和第j列的相關(guān)系數(shù),值的絕對值越大相關(guān)性越高艳悔,為0則不相關(guān)急凰。

print(iris_csv.corr())   #值的絕對值越大相關(guān)性越高,為0則不相關(guān)
          5.1       3.5       1.4       0.2
5.1  1.000000 -0.103784  0.871283  0.816971
3.5 -0.103784  1.000000 -0.415218 -0.350733
1.4  0.871283 -0.415218  1.000000  0.962314
0.2  0.816971 -0.350733  0.962314  1.000000

value_counts()

iris_csv['Iris-setosa'].value_counts()     
"""value_counts()可以清楚看出某一列的分布情況猜年,可以指定ascending = True變?yōu)榈剐颍?還可添加bins將數(shù)據(jù)自動分為幾類"""
Iris-versicolor    50
Iris-virginica     50
Iris-setosa        49
Name: Iris-setosa, dtype: int64

統(tǒng)計值從小到大排序

iris_csv['3.5'].value_counts(ascending = True)
4.0     1
2.0     1
4.4     1
4.1     1
4.2     1
3.9     2
3.7     3
2.2     3
2.4     3
3.6     3
2.3     4
2.6     5
3.5     5
3.3     6
3.8     6
2.5     8
2.7     9
2.9    10
3.1    12
3.4    12
3.2    13
2.8    14
3.0    26
Name: 3.5, dtype: int64

設(shè)置bins

#如下抡锈,指定bins為5,自動歸為了五類,當(dāng)一列有很多值的情況下乔外,我們可以考慮用這個方法將其分為幾類
iris_csv['3.5'].value_counts(ascending = True,bins = 5) 
(3.92, 4.4]       4
(1.997, 2.48]    11
(3.44, 3.92]     19
(2.48, 2.96]     46
(2.96, 3.44]     69
Name: 3.5, dtype: int64

數(shù)據(jù)選取

先使用一些切片的方法

# 可以直接取指定的一列床三,取出來就是一個series
Iris_setosa = iris_csv['Iris-setosa']
print(Iris_setosa[:5])

print('--------------------------------')

#當(dāng)然,也可指定多列
df_iris1 = iris_csv[['1.4','Iris-setosa']]
print(df_iris1[:5])

print('--------------------------------')

#還可以直接切片,不過這里我只會橫著切
df_iris2 = iris_csv[:2]
print(df_iris2)
0    Iris-setosa
1    Iris-setosa
2    Iris-setosa
3    Iris-setosa
4    Iris-setosa
Name: Iris-setosa, dtype: object
--------------------------------
   1.4  Iris-setosa
0  1.4  Iris-setosa
1  1.3  Iris-setosa
2  1.5  Iris-setosa
3  1.4  Iris-setosa
4  1.7  Iris-setosa
--------------------------------
   5.1  3.5  1.4  0.2  Iris-setosa
0  4.9  3.0  1.4  0.2  Iris-setosa
1  4.7  3.2  1.3  0.2  Iris-setosa

高級索引方式

  • loc():根據(jù)標簽選取列,DataFrame行的表示方式有兩種杨幼,一種是通過顯式的行標簽來索引撇簿,另一種是通過默認隱式的行號來索引。loc方法是通過行標簽來索引選取目標行差购,可以配合列標簽來選取特定位置的數(shù)據(jù)四瘫。
  • iloc():根據(jù)序列選取行,使用隱式(即為從0到無窮的數(shù)據(jù)索引)的行序列號來選取數(shù)據(jù)使用iloc,可以搭配列序列號來更簡單的選取特定位點的數(shù)據(jù)
  • ix():組合使用索引和標簽來選取特定位置,loc只能使用顯式標簽來選取數(shù)據(jù)欲逃,而iloc只能使用隱式序列號來選取數(shù)據(jù)找蜜,ix則能將二者結(jié)合起來使用,ix可以混用顯式標簽與隱式序列號稳析。

注意:ix方法已經(jīng)要被淘汰了洗做,所以就不使用它了

上面說的這么復(fù)雜弓叛,其實就是兩句話

  • loc 用label來去定位
  • iloc 用position來去定位
#以下我們換一個泰坦尼克的數(shù)據(jù)集
df = pd.read_csv('titanic.csv')
print(df.info())


<class 'pandas.core.frame.DataFrame'>
RangeIndex: 891 entries, 0 to 890
Data columns (total 12 columns):
PassengerId    891 non-null int64
Survived       891 non-null int64
Pclass         891 non-null int64
Name           891 non-null object
Sex            891 non-null object
Age            714 non-null float64
SibSp          891 non-null int64
Parch          891 non-null int64
Ticket         891 non-null object
Fare           891 non-null float64
Cabin          204 non-null object
Embarked       889 non-null object
dtypes: float64(2), int64(5), object(5)
memory usage: 83.6+ KB
None

iloc方法
索引方式和numpy差不多

print(df.iloc[0])
PassengerId                          1
Survived                             0
Pclass                               3
Name           Braund, Mr. Owen Harris
Sex                               male
Age                                 22
SibSp                                1
Parch                                0
Ticket                       A/5 21171
Fare                              7.25
Cabin                              NaN
Embarked                             S
Name: 0, dtype: object

切片

print(df.iloc[0:2])


                                                    PassengerId  Survived  \
Name                                                                        
Braund, Mr. Owen Harris                                       1         0   
Cumings, Mrs. John Bradley (Florence Briggs Tha...            2         1   

                                                    Pclass     Sex   Age  \
Name                                                                       
Braund, Mr. Owen Harris                                  3    male  22.0   
Cumings, Mrs. John Bradley (Florence Briggs Tha...       1  female  38.0   

                                                    SibSp  Parch     Ticket  \
Name                                                                          
Braund, Mr. Owen Harris                                 1      0  A/5 21171   
Cumings, Mrs. John Bradley (Florence Briggs Tha...      1      0   PC 17599   

                                                       Fare Cabin Embarked  
Name                                                                        
Braund, Mr. Owen Harris                              7.2500   NaN        S  
Cumings, Mrs. John Bradley (Florence Briggs Tha...  71.2833   C85        C  

兩邊切

print(df.iloc[0:4,0:4])
                                                    PassengerId  Survived  \
Name                                                                        
Braund, Mr. Owen Harris                                       1         0   
Cumings, Mrs. John Bradley (Florence Briggs Tha...            2         1   
Heikkinen, Miss. Laina                                        3         1   
Futrelle, Mrs. Jacques Heath (Lily May Peel)                  4         1   

                                                    Pclass     Sex  
Name                                                                
Braund, Mr. Owen Harris                                  3    male  
Cumings, Mrs. John Bradley (Florence Briggs Tha...       1  female  
Heikkinen, Miss. Laina                                   3  female  
Futrelle, Mrs. Jacques Heath (Lily May Peel)             1  female  

loc方法
用于標簽索引

df = df.set_index('Name')         #將name設(shè)為索引用于loc遍歷
df.loc['Braund, Mr. Owen Harris']  
PassengerId            1
Survived               0
Pclass                 3
Sex                 male
Age                   22
SibSp                  1
Parch                  0
Ticket         A/5 21171
Fare                7.25
Cabin                NaN
Embarked               S
Name: Braund, Mr. Owen Harris, dtype: object

指定行和列索引

df.loc['Braund, Mr. Owen Harris','Sex']  #指定行和列索引 
'male'

切片

df.loc['Braund, Mr. Owen Harris':'Heikkinen, Miss. Laina',:]    #一樣可以切片

image.png

bool類型索引

其實和前面numpy的操作是一樣的,這里就舉個例子
首先诚纸,得到一個bool列表

print(df['Sex'] == 'female') #得到bool列表


Name
Braund, Mr. Owen Harris                                      False
Cumings, Mrs. John Bradley (Florence Briggs Thayer)           True
Heikkinen, Miss. Laina                                        True
Futrelle, Mrs. Jacques Heath (Lily May Peel)                  True
Allen, Mr. William Henry                                     False
Moran, Mr. James                                             False
McCarthy, Mr. Timothy J                                      False
Palsson, Master. Gosta Leonard                               False
Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg)             True
Nasser, Mrs. Nicholas (Adele Achem)                           True
Sandstrom, Miss. Marguerite Rut                               True
Bonnell, Miss. Elizabeth                                      True
Saundercock, Mr. William Henry                               False
Andersson, Mr. Anders Johan                                  False
Vestrom, Miss. Hulda Amanda Adolfina                          True
Hewlett, Mrs. (Mary D Kingcome)                               True
Rice, Master. Eugene                                         False
Williams, Mr. Charles Eugene                                 False
Vander Planke, Mrs. Julius (Emelia Maria Vandemoortele)       True
Masselmani, Mrs. Fatima                                       True
Fynney, Mr. Joseph J                                         False
Beesley, Mr. Lawrence                                        False
McGowan, Miss. Anna "Annie"                                   True
Sloper, Mr. William Thompson                                 False
Palsson, Miss. Torborg Danira                                 True
Asplund, Mrs. Carl Oscar (Selma Augusta Emilia Johansson)     True
Emir, Mr. Farred Chehab                                      False
Fortune, Mr. Charles Alexander                               False
O'Dwyer, Miss. Ellen "Nellie"                                 True
Todoroff, Mr. Lalio                                          False
                                                             ...  
Giles, Mr. Frederick Edward                                  False
Swift, Mrs. Frederick Joel (Margaret Welles Barron)           True
Sage, Miss. Dorothy Edith "Dolly"                             True
Gill, Mr. John William                                       False
Bystrom, Mrs. (Karolina)                                      True
Duran y More, Miss. Asuncion                                  True
Roebling, Mr. Washington Augustus II                         False
van Melkebeke, Mr. Philemon                                  False
Johnson, Master. Harold Theodor                              False
Balkic, Mr. Cerin                                            False
Beckwith, Mrs. Richard Leonard (Sallie Monypeny)              True
Carlsson, Mr. Frans Olof                                     False
Vander Cruyssen, Mr. Victor                                  False
Abelson, Mrs. Samuel (Hannah Wizosky)                         True
Najib, Miss. Adele Kiamie "Jane"                              True
Gustafsson, Mr. Alfred Ossian                                False
Petroff, Mr. Nedelio                                         False
Laleff, Mr. Kristo                                           False
Potter, Mrs. Thomas Jr (Lily Alexenia Wilson)                 True
Shelley, Mrs. William (Imanita Parrish Hall)                  True
Markun, Mr. Johann                                           False
Dahlberg, Miss. Gerda Ulrika                                  True
Banfield, Mr. Frederick James                                False
Sutehall, Mr. Henry Jr                                       False
Rice, Mrs. William (Margaret Norton)                          True
Montvila, Rev. Juozas                                        False
Graham, Miss. Margaret Edith                                  True
Johnston, Miss. Catherine Helen "Carrie"                      True
Behr, Mr. Karl Howell                                        False
Dooley, Mr. Patrick                                          False
Name: Sex, Length: 891, dtype: bool

然后去找到值

df[df['Sex'] == 'female'][:5]
image.png

得到特定列的結(jié)果

df.loc[df['Sex'] == 'male','Age'][:5]      #得到性別為女性的年齡
Name
Braund, Mr. Owen Harris           22.0
Allen, Mr. William Henry          35.0
Moran, Mr. James                   NaN
McCarthy, Mr. Timothy J           54.0
Palsson, Master. Gosta Leonard     2.0
Name: Age, dtype: float64

此外邪码,還有where操作

where(cond,other = nan) 我這里只介紹前兩個參數(shù)咬清,有興趣的可以去pandas官方文檔上去查,cond就是傳入的矩陣奴潘,other指定不滿足條件的值等于什么旧烧。

不使用other參數(shù)

df.where(df>2)[:5]
image.png

使用other參數(shù)

df.where(df>2,0)[:5]
image.png

還有query操作
使用布爾表達式查詢DataFrame的列。

df1 = pd.DataFrame(np.random.randn(5, 2), columns=list('ab'))
print(df1.query('a > b'))   #其實就等于   df1[df1.a > df1.b]  
          a         b
1  1.164991 -1.354645
3  0.993299  0.188703

合并操作

這里就將concat和merge操作画髓,這兩個操作在做特征工程時時常會用到

  • concat([df1,df2,…]掘剪,axis=[ ]) 將矩陣按行或列合并,指定axis奈虾。
  • merge(df1,df2夺谁,on = '',how = '') 將矩陣按某個鍵和怎樣的方式融合,on指定融合的鍵肉微,可以是一個元組匾鸥;how指定融合方式,有l(wèi)eft(左),right(右),outer(全連接),默認為左連接碉纳。
left = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],
                    'A': ['A0', 'A1', 'A2', 'A3'], 
                    'B': ['B0', 'B1', 'B2', 'B3']})
right = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],
                    'C': ['C0', 'C1', 'C2', 'C3'], 
                    'D': ['D0', 'D1', 'D2', 'D3']})
print(left)
print(right)
    A   B key
0  A0  B0  K0
1  A1  B1  K1
2  A2  B2  K2
3  A3  B3  K3
    C   D key
0  C0  D0  K0
1  C1  D1  K1
2  C2  D2  K2
3  C3  D3  K3

concat操作

res = pd.concat([left,right],axis = 1)
print(res)
    A   B key   C   D key
0  A0  B0  K0  C0  D0  K0
1  A1  B1  K1  C1  D1  K1
2  A2  B2  K2  C2  D2  K2
3  A3  B3  K3  C3  D3  K3

merge操作

res = pd.merge(left, right, on = 'key')
print(res)
    A   B key   C   D
0  A0  B0  K0  C0  D0
1  A1  B1  K1  C1  D1
2  A2  B2  K2  C2  D2
3  A3  B3  K3  C3  D3

另外還有一種join方法,可以按鍵添加矩陣進去,不過要設(shè)置其的索引與要加入的矩陣的鍵有關(guān)系.

right.set_index('key',inplace = True)
res = left.join(right, on = 'key')
print(res)
    A   B key   C   D
0  A0  B0  K0  C0  D0
1  A1  B1  K1  C1  D1
2  A2  B2  K2  C2  D2
3  A3  B3  K3  C3  D3

這些就是我覺得比較基礎(chǔ)和常用的pandas方法勿负,不理解的地方一定要查api文檔然后自己練習(xí)一下。
下一篇介紹一些高級的用法劳曹。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末奴愉,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子铁孵,更是在濱河造成了極大的恐慌锭硼,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蜕劝,死亡現(xiàn)場離奇詭異檀头,居然都是意外死亡,警方通過查閱死者的電腦和手機熙宇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門鳖擒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人烫止,你說我怎么就攤上這事蒋荚。” “怎么了馆蠕?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵期升,是天一觀的道長惊奇。 經(jīng)常有香客問我,道長播赁,這世上最難降的妖魔是什么颂郎? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮容为,結(jié)果婚禮上乓序,老公的妹妹穿的比我還像新娘。我一直安慰自己坎背,他們只是感情好替劈,可當(dāng)我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著得滤,像睡著了一般陨献。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上懂更,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天眨业,我揣著相機與錄音,去河邊找鬼沮协。 笑死龄捡,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的慷暂。 我是一名探鬼主播墅茉,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼呜呐!你這毒婦竟也來了就斤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蘑辑,失蹤者是張志新(化名)和其女友劉穎洋机,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體洋魂,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡绷旗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了副砍。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片衔肢。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖豁翎,靈堂內(nèi)的尸體忽然破棺而出角骤,到底是詐尸還是另有隱情,我是刑警寧澤心剥,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布邦尊,位于F島的核電站背桐,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蝉揍。R本人自食惡果不足惜链峭,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望又沾。 院中可真熱鬧弊仪,春花似錦、人聲如沸杖刷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽挺勿。三九已至,卻和暖如春喂柒,著一層夾襖步出監(jiān)牢的瞬間不瓶,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工灾杰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蚊丐,地道東北人。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓艳吠,卻偏偏與公主長得像麦备,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子昭娩,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,947評論 2 355

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