利用python进入数据分析之全美婴儿姓名分析

导入相关库

In [15]:
from __future__ import division
from numpy.random import randn
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
plt.rc('figure', figsize=(12, 5))
np.set_printoptions(precision=4)
%pwd
Out[15]:
u'D:\\ipython'

加载数据

In [4]:
import pandas as pd
names1880 = pd.read_csv('ch02/names/yob1880.txt', names=['name', 'sex', 'births'])
names1880
Out[4]:
  name sex births
0 Mary F 7065
1 Anna F 2604
2 Emma F 2003
3 Elizabeth F 1939
4 Minnie F 1746
5 Margaret F 1578
6 Ida F 1472
7 Alice F 1414
8 Bertha F 1320
9 Sarah F 1288
10 Annie F 1258
11 Clara F 1226
12 Ella F 1156
13 Florence F 1063
14 Cora F 1045
15 Martha F 1040
16 Laura F 1012
17 Nellie F 995
18 Grace F 982
19 Carrie F 949
20 Maude F 858
21 Mabel F 808
22 Bessie F 794
23 Jennie F 793
24 Gertrude F 787
25 Julia F 783
26 Hattie F 769
27 Edith F 768
28 Mattie F 704
29 Rose F 700
... ... ... ...
1970 Philo M 5
1971 Phineas M 5
1972 Presley M 5
1973 Ransom M 5
1974 Reece M 5
1975 Rene M 5
1976 Roswell M 5
1977 Rowland M 5
1978 Sampson M 5
1979 Samual M 5
1980 Santos M 5
1981 Schuyler M 5
1982 Sheppard M 5
1983 Spurgeon M 5
1984 Starling M 5
1985 Sylvanus M 5
1986 Theadore M 5
1987 Theophile M 5
1988 Tilmon M 5
1989 Tommy M 5
1990 Unknown M 5
1991 Vann M 5
1992 Wes M 5
1993 Winston M 5
1994 Wood M 5
1995 Woodie M 5
1996 Worthy M 5
1997 Wright M 5
1998 York M 5
1999 Zachariah M 5

2000 rows × 3 columns

In [5]:
names1880.groupby('sex').births.sum()
Out[5]:
sex
F     90993
M    110493
Name: births, dtype: int64

数据聚合(将所有文本呢数据整合成一个DF)

In [7]:
# 2010 is the last available year right now
years = range(1880, 2011)

pieces = []
columns = ['name', 'sex', 'births']

for year in years:
    path = 'ch02/names/yob%d.txt' % year
    frame = pd.read_csv(path, names=columns)

    frame['year'] = year
    pieces.append(frame)

# Concatenate everything into a single DataFrame
names = pd.concat(pieces, ignore_index=True)
In [8]:
names
Out[8]:
  name sex births year
0 Mary F 7065 1880
1 Anna F 2604 1880
2 Emma F 2003 1880
3 Elizabeth F 1939 1880
4 Minnie F 1746 1880
5 Margaret F 1578 1880
6 Ida F 1472 1880
7 Alice F 1414 1880
8 Bertha F 1320 1880
9 Sarah F 1288 1880
10 Annie F 1258 1880
11 Clara F 1226 1880
12 Ella F 1156 1880
13 Florence F 1063 1880
14 Cora F 1045 1880
15 Martha F 1040 1880
16 Laura F 1012 1880
17 Nellie F 995 1880
18 Grace F 982 1880
19 Carrie F 949 1880
20 Maude F 858 1880
21 Mabel F 808 1880
22 Bessie F 794 1880
23 Jennie F 793 1880
24 Gertrude F 787 1880
25 Julia F 783 1880
26 Hattie F 769 1880
27 Edith F 768 1880
28 Mattie F 704 1880
29 Rose F 700 1880
... ... ... ... ...
1690754 Zaviyon M 5 2010
1690755 Zaybrien M 5 2010
1690756 Zayshawn M 5 2010
1690757 Zayyan M 5 2010
1690758 Zeal M 5 2010
1690759 Zealan M 5 2010
1690760 Zecharia M 5 2010
1690761 Zeferino M 5 2010
1690762 Zekariah M 5 2010
1690763 Zeki M 5 2010
1690764 Zeriah M 5 2010
1690765 Zeshan M 5 2010
1690766 Zhyier M 5 2010
1690767 Zildjian M 5 2010
1690768 Zinn M 5 2010
1690769 Zishan M 5 2010
1690770 Ziven M 5 2010
1690771 Zmari M 5 2010
1690772 Zoren M 5 2010
1690773 Zuhaib M 5 2010
1690774 Zyeire M 5 2010
1690775 Zygmunt M 5 2010
1690776 Zykerion M 5 2010
1690777 Zylar M 5 2010
1690778 Zylin M 5 2010
1690779 Zymaire M 5 2010
1690780 Zyonne M 5 2010
1690781 Zyquarius M 5 2010
1690782 Zyran M 5 2010
1690783 Zzyzx M 5 2010

1690784 rows × 4 columns

统计出生日期和性别

In [12]:
total_births = names.pivot_table('births', index='year',
                                 columns='sex', aggfunc=sum)
In [13]:
total_births.tail()
Out[13]:
sex F M
year    
2006 1896468 2050234
2007 1916888 2069242
2008 1883645 2032310
2009 1827643 1973359
2010 1759010 1898382
In [16]:
total_births.plot(title='Total births by sex and year')
Out[16]:
<matplotlib.axes._subplots.AxesSubplot at 0xdb1a870>

新建数据子集,为后续分析

In [19]:
def get_top1000(group):
    return group.sort_index(by='births', ascending=False)[:1000]
grouped = names.groupby(['year', 'sex'])
top1000 = grouped.apply(get_top1000)
D:\python2713\lib\anaconda_install\lib\site-packages\ipykernel_launcher.py:2: FutureWarning: by argument to sort_index is deprecated, pls use .sort_values(by=...)
  
In [29]:
top1000.index = np.arange(len(top1000))
In [30]:
top1000
Out[30]:
  name sex births year
0 Mary F 7065 1880
1 Anna F 2604 1880
2 Emma F 2003 1880
3 Elizabeth F 1939 1880
4 Minnie F 1746 1880
5 Margaret F 1578 1880
6 Ida F 1472 1880
7 Alice F 1414 1880
8 Bertha F 1320 1880
9 Sarah F 1288 1880
10 Annie F 1258 1880
11 Clara F 1226 1880
12 Ella F 1156 1880
13 Florence F 1063 1880
14 Cora F 1045 1880
15 Martha F 1040 1880
16 Laura F 1012 1880
17 Nellie F 995 1880
18 Grace F 982 1880
19 Carrie F 949 1880
20 Maude F 858 1880
21 Mabel F 808 1880
22 Bessie F 794 1880
23 Jennie F 793 1880
24 Gertrude F 787 1880
25 Julia F 783 1880
26 Hattie F 769 1880
27 Edith F 768 1880
28 Mattie F 704 1880
29 Rose F 700 1880
... ... ... ... ...
261847 Yair M 201 2010
261848 Talan M 201 2010
261849 Keyon M 201 2010
261850 Kael M 201 2010
261851 Demarion M 200 2010
261852 Gibson M 200 2010
261853 Reagan M 200 2010
261854 Cristofer M 199 2010
261855 Daylen M 199 2010
261856 Jordon M 199 2010
261857 Dashawn M 198 2010
261858 Masen M 198 2010
261859 Rowen M 197 2010
261860 Yousef M 197 2010
261861 Thaddeus M 197 2010
261862 Kadin M 197 2010
261863 Dillan M 197 2010
261864 Clarence M 197 2010
261865 Slade M 196 2010
261866 Clinton M 196 2010
261867 Sheldon M 196 2010
261868 Keshawn M 195 2010
261869 Menachem M 195 2010
261870 Joziah M 195 2010
261871 Bailey M 194 2010
261872 Camilo M 194 2010
261873 Destin M 194 2010
261874 Jaquan M 194 2010
261875 Jaydan M 194 2010
261876 Maxton M 193 2010

261877 rows × 4 columns

分析命名趋势

In [31]:
boys = top1000[top1000.sex == 'M']
girls = top1000[top1000.sex == 'F']
In [33]:
total_births = top1000.pivot_table('births', index='year', columns='name',
                                   aggfunc=sum)
total_births
Out[33]:
name Aaden Aaliyah Aarav Aaron Aarush Ab Abagail Abb Abbey Abbie ... Zoa Zoe Zoey Zoie Zola Zollie Zona Zora Zula Zuri
year                                          
1880 NaN NaN NaN 102.0 NaN NaN NaN NaN NaN 71.0 ... 8.0 23.0 NaN NaN 7.0 NaN 8.0 28.0 27.0 NaN
1881 NaN NaN NaN 94.0 NaN NaN NaN NaN NaN 81.0 ... NaN 22.0 NaN NaN 10.0 NaN 9.0 21.0 27.0 NaN
1882 NaN NaN NaN 85.0 NaN NaN NaN NaN NaN 80.0 ... 8.0 25.0 NaN NaN 9.0 NaN 17.0 32.0 21.0 NaN
1883 NaN NaN NaN 105.0 NaN NaN NaN NaN NaN 79.0 ... NaN 23.0 NaN NaN 10.0 NaN 11.0 35.0 25.0 NaN
1884 NaN NaN NaN 97.0 NaN NaN NaN NaN NaN 98.0 ... 13.0 31.0 NaN NaN 14.0 6.0 8.0 58.0 27.0 NaN
1885 NaN NaN NaN 88.0 NaN 6.0 NaN NaN NaN 88.0 ... 6.0 27.0 NaN NaN 12.0 6.0 14.0 48.0 38.0 NaN
1886 NaN NaN NaN 86.0 NaN NaN NaN NaN NaN 84.0 ... 13.0 25.0 NaN NaN 8.0 NaN 20.0 52.0 43.0 NaN
1887 NaN NaN NaN 78.0 NaN NaN NaN NaN NaN 104.0 ... 9.0 34.0 NaN NaN 23.0 NaN 28.0 46.0 33.0 NaN
1888 NaN NaN NaN 90.0 NaN NaN NaN NaN NaN 137.0 ... 11.0 42.0 NaN NaN 23.0 7.0 30.0 42.0 45.0 NaN
1889 NaN NaN NaN 85.0 NaN NaN NaN NaN NaN 107.0 ... 14.0 29.0 NaN NaN 22.0 NaN 29.0 53.0 55.0 NaN
1890 NaN NaN NaN 96.0 NaN NaN NaN 6.0 NaN 140.0 ... NaN 42.0 NaN NaN 32.0 7.0 27.0 60.0 65.0 NaN
1891 NaN NaN NaN 69.0 NaN NaN NaN NaN NaN 124.0 ... NaN 34.0 NaN NaN 29.0 6.0 14.0 52.0 45.0 NaN
1892 NaN NaN NaN 95.0 NaN NaN NaN NaN NaN 119.0 ... NaN 34.0 NaN NaN 27.0 NaN 25.0 66.0 53.0 NaN
1893 NaN NaN NaN 81.0 NaN NaN NaN NaN NaN 115.0 ... NaN 23.0 NaN NaN 34.0 6.0 15.0 67.0 70.0 NaN
1894 NaN NaN NaN 79.0 NaN NaN NaN NaN NaN 118.0 ... NaN 28.0 NaN NaN 51.0 NaN 23.0 66.0 64.0 NaN
1895 NaN NaN NaN 94.0 NaN NaN NaN NaN NaN 92.0 ... NaN 34.0 NaN NaN 60.0 11.0 38.0 55.0 55.0 NaN
1896 NaN NaN NaN 69.0 NaN NaN NaN NaN NaN 121.0 ... NaN 36.0 NaN NaN 47.0 NaN 38.0 72.0 65.0 NaN
1897 NaN NaN NaN 87.0 NaN NaN NaN NaN NaN 97.0 ... NaN 35.0 NaN NaN 51.0 NaN 28.0 67.0 79.0 NaN
1898 NaN NaN NaN 89.0 NaN NaN NaN NaN NaN 120.0 ... NaN 30.0 NaN NaN 62.0 NaN 28.0 65.0 83.0 NaN
1899 NaN NaN NaN 71.0 NaN NaN NaN NaN NaN 87.0 ... NaN 27.0 NaN NaN 49.0 6.0 31.0 56.0 60.0 NaN
1900 NaN NaN NaN 104.0 NaN NaN NaN NaN NaN 112.0 ... NaN 26.0 NaN NaN 48.0 9.0 44.0 99.0 71.0 NaN
1901 NaN NaN NaN 80.0 NaN NaN NaN NaN NaN 87.0 ... NaN 26.0 NaN NaN 56.0 NaN 31.0 58.0 57.0 NaN
1902 NaN NaN NaN 78.0 NaN NaN NaN NaN NaN 91.0 ... NaN 34.0 NaN NaN 58.0 NaN 23.0 58.0 66.0 NaN
1903 NaN NaN NaN 93.0 NaN NaN NaN NaN NaN 91.0 ... NaN 19.0 NaN NaN 64.0 NaN 41.0 83.0 74.0 NaN
1904 NaN NaN NaN 117.0 NaN NaN NaN NaN NaN 80.0 ... NaN 27.0 NaN NaN 46.0 NaN 35.0 54.0 74.0 NaN
1905 NaN NaN NaN 96.0 NaN NaN NaN NaN NaN 73.0 ... NaN 24.0 NaN NaN 66.0 8.0 24.0 55.0 61.0 NaN
1906 NaN NaN NaN 96.0 NaN NaN NaN NaN NaN 72.0 ... NaN 19.0 NaN NaN 59.0 NaN 37.0 64.0 58.0 NaN
1907 NaN NaN NaN 130.0 NaN NaN NaN NaN NaN 79.0 ... NaN 19.0 NaN NaN 53.0 11.0 39.0 92.0 72.0 NaN
1908 NaN NaN NaN 114.0 NaN NaN NaN NaN NaN 84.0 ... NaN 23.0 NaN NaN 70.0 NaN 31.0 59.0 53.0 NaN
1909 NaN NaN NaN 142.0 NaN NaN NaN NaN NaN 57.0 ... NaN 22.0 NaN NaN 59.0 NaN 39.0 57.0 76.0 NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
1981 NaN NaN NaN 14832.0 NaN NaN NaN NaN 383.0 292.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1982 NaN NaN NaN 14538.0 NaN NaN NaN NaN 372.0 275.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1983 NaN NaN NaN 14627.0 NaN NaN NaN NaN 419.0 223.0 ... NaN 174.0 NaN NaN NaN NaN NaN NaN NaN NaN
1984 NaN NaN NaN 13387.0 NaN NaN NaN NaN 357.0 249.0 ... NaN 200.0 NaN NaN NaN NaN NaN NaN NaN NaN
1985 NaN NaN NaN 13123.0 NaN NaN NaN NaN 314.0 233.0 ... NaN 193.0 NaN NaN NaN NaN NaN NaN NaN NaN
1986 NaN NaN NaN 12685.0 NaN NaN NaN NaN 369.0 228.0 ... NaN 213.0 NaN NaN NaN NaN NaN NaN NaN NaN
1987 NaN NaN NaN 12676.0 NaN NaN NaN NaN 327.0 228.0 ... NaN 248.0 NaN NaN NaN NaN NaN NaN NaN NaN
1988 NaN NaN NaN 14393.0 NaN NaN NaN NaN 404.0 226.0 ... NaN 238.0 NaN NaN NaN NaN NaN NaN NaN NaN
1989 NaN NaN NaN 15312.0 NaN NaN NaN NaN 470.0 265.0 ... NaN 376.0 NaN NaN NaN NaN NaN NaN NaN NaN
1990 NaN NaN NaN 14545.0 NaN NaN NaN NaN 507.0 311.0 ... NaN 478.0 NaN NaN NaN NaN NaN NaN NaN NaN
1991 NaN NaN NaN 14240.0 NaN NaN NaN NaN 451.0 278.0 ... NaN 722.0 NaN NaN NaN NaN NaN NaN NaN NaN
1992 NaN NaN NaN 14494.0 NaN NaN NaN NaN 430.0 260.0 ... NaN 978.0 NaN NaN NaN NaN NaN NaN NaN NaN
1993 NaN NaN NaN 13819.0 NaN NaN NaN NaN 503.0 291.0 ... NaN 1194.0 NaN NaN NaN NaN NaN NaN NaN NaN
1994 NaN 1451.0 NaN 14379.0 NaN NaN NaN NaN 597.0 351.0 ... NaN 1332.0 NaN NaN NaN NaN NaN NaN NaN NaN
1995 NaN 1254.0 NaN 13277.0 NaN NaN NaN NaN 549.0 351.0 ... NaN 1726.0 219.0 NaN NaN NaN NaN NaN NaN NaN
1996 NaN 831.0 NaN 11956.0 NaN NaN NaN NaN 552.0 349.0 ... NaN 2063.0 339.0 NaN NaN NaN NaN NaN NaN NaN
1997 NaN 1737.0 NaN 11156.0 NaN NaN NaN NaN 645.0 386.0 ... NaN 2363.0 407.0 NaN NaN NaN NaN NaN NaN NaN
1998 NaN 1399.0 NaN 10539.0 NaN NaN NaN NaN 661.0 398.0 ... NaN 2690.0 478.0 225.0 NaN NaN NaN NaN NaN NaN
1999 NaN 1088.0 NaN 9846.0 NaN NaN 211.0 NaN 710.0 430.0 ... NaN 3238.0 561.0 257.0 NaN NaN NaN NaN NaN NaN
2000 NaN 1494.0 NaN 9548.0 NaN NaN 222.0 NaN 660.0 432.0 ... NaN 3783.0 691.0 320.0 NaN NaN NaN NaN NaN NaN
2001 NaN 3351.0 NaN 9529.0 NaN NaN 244.0 NaN 687.0 526.0 ... NaN 4642.0 822.0 439.0 NaN NaN NaN NaN NaN NaN
2002 NaN 4775.0 NaN 8993.0 NaN NaN 256.0 NaN 600.0 514.0 ... NaN 4883.0 1182.0 438.0 NaN NaN NaN NaN NaN NaN
2003 NaN 3670.0 NaN 8851.0 NaN NaN 276.0 NaN 625.0 536.0 ... NaN 5080.0 1465.0 448.0 NaN NaN NaN NaN NaN NaN
2004 NaN 3482.0 NaN 8381.0 NaN NaN 258.0 NaN 504.0 500.0 ... NaN 5359.0 1621.0 515.0 NaN NaN NaN NaN NaN NaN
2005 NaN 3452.0 NaN 7796.0 NaN NaN 287.0 NaN 451.0 445.0 ... NaN 4953.0 2266.0 502.0 NaN NaN NaN NaN NaN NaN
2006 NaN 3737.0 NaN 8279.0 NaN NaN 297.0 NaN 404.0 440.0 ... NaN 5145.0 2839.0 530.0 NaN NaN NaN NaN NaN NaN
2007 NaN 3941.0 NaN 8914.0 NaN NaN 313.0 NaN 349.0 468.0 ... NaN 4925.0 3028.0 526.0 NaN NaN NaN NaN NaN NaN
2008 955.0 4028.0 219.0 8511.0 NaN NaN 317.0 NaN 344.0 400.0 ... NaN 4764.0 3438.0 492.0 NaN NaN NaN NaN NaN NaN
2009 1265.0 4352.0 270.0 7936.0 NaN NaN 296.0 NaN 307.0 369.0 ... NaN 5120.0 3981.0 496.0 NaN NaN NaN NaN NaN NaN
2010 448.0 4628.0 438.0 7374.0 226.0 NaN 277.0 NaN 295.0 324.0 ... NaN 6200.0 5164.0 504.0 NaN NaN NaN NaN NaN 258.0

131 rows × 6868 columns

In [34]:
subset = total_births[['John', 'Harry', 'Mary', 'Marilyn']]  # 分析这四个名字的趋势
subset.plot(subplots=True, figsize=(12, 10), grid=False,
            title="Number of births per year")
Out[34]:
array([<matplotlib.axes._subplots.AxesSubplot object at 0x0C7B1510>,
       <matplotlib.axes._subplots.AxesSubplot object at 0x0C04F0D0>,
       <matplotlib.axes._subplots.AxesSubplot object at 0x0B5F1D70>,
       <matplotlib.axes._subplots.AxesSubplot object at 0x0B45D150>], dtype=object)
D:\python2713\lib\anaconda_install\lib\site-packages\matplotlib\transforms.py:661: RuntimeWarning: invalid value encountered in absolute
  inside = ((abs(dx0 + dx1) + abs(dy0 + dy1)) == 0)

评估命名的多样性

In [35]:
plt.figure()
Out[35]:
<matplotlib.figure.Figure at 0xaa8dfd0>
<matplotlib.figure.Figure at 0xaa8dfd0>
In [39]:
table = top1000.pivot_table( index='year',
                            columns='sex', aggfunc=sum)
table.plot(title='Sum of table1000.prop by year and sex',
           yticks=np.linspace(0, 1.2, 13), xticks=range(1880, 2020, 10))
Out[39]:
<matplotlib.axes._subplots.AxesSubplot at 0xa64add0>

姓名中最后一个字母的变革

In [65]:
# extract last letter from name column
get_last_letter = lambda x: x[-1]
last_letters = names.name.map(get_last_letter)
last_letters.name = 'last_letter'

table = names.pivot_table('births', index=last_letters,
                          columns=['sex', 'year'], aggfunc=sum)
In [66]:
subtable = table.reindex(columns=[1910, 1960, 2010], level='year')
subtable.head()
subtable.sum()
Out[66]:
sex  year
F    1910     396416.0
     1960    2022062.0
     2010    1759010.0
M    1910     194198.0
     1960    2132588.0
     2010    1898382.0
dtype: float64
In [67]:
letter_prop = subtable / subtable.sum().astype(float)
In [68]:
import matplotlib.pyplot as plt

fig, axes = plt.subplots(2, 1, figsize=(10, 8))
letter_prop['M'].plot(kind='bar', rot=0, ax=axes[0], title='Male')
letter_prop['F'].plot(kind='bar', rot=0, ax=axes[1], title='Female',
                      legend=False)
Out[68]:
<matplotlib.axes._subplots.AxesSubplot at 0x9d4e3d0>

In [69]:
plt.subplots_adjust(hspace=0.25)
<matplotlib.figure.Figure at 0xa054a50>
In [70]:
letter_prop = table / table.sum().astype(float)

dny_ts = letter_prop.ix[['d', 'n', 'y'], 'M'].T
dny_ts.head()
D:\python2713\lib\anaconda_install\lib\site-packages\ipykernel_launcher.py:3: DeprecationWarning: 
.ix is deprecated. Please use
.loc for label based indexing or
.iloc for positional indexing

See the documentation here:
http://pandas.pydata.org/pandas-docs/stable/indexing.html#deprecate_ix
  This is separate from the ipykernel package so we can avoid doing imports until
Out[70]:
last_letter d n y
year      
1880 0.083055 0.153213 0.075760
1881 0.083247 0.153214 0.077451
1882 0.085340 0.149560 0.077537
1883 0.084066 0.151646 0.079144
1884 0.086120 0.149915 0.080405
In [71]:
plt.close('all')
In [72]:
dny_ts.plot()
Out[72]:
<matplotlib.axes._subplots.AxesSubplot at 0x9751630>

男女孩名字互换

In [73]:
all_names = top1000.name.unique()
mask = np.array(['lesl' in x.lower() for x in all_names])
lesley_like = all_names[mask]
lesley_like
Out[73]:
array(['Leslie', 'Lesley', 'Leslee', 'Lesli', 'Lesly'], dtype=object)
In [74]:
filtered = top1000[top1000.name.isin(lesley_like)]
filtered.groupby('name').births.sum()
Out[74]:
name
Leslee      1082
Lesley     35022
Lesli        929
Leslie    370429
Lesly      10067
Name: births, dtype: int64
In [76]:
table = filtered.pivot_table('births', index='year',
                             columns='sex', aggfunc='sum')
table = table.div(table.sum(1), axis=0)
table.tail()
Out[76]:
sex F M
year    
2006 1.0 NaN
2007 1.0 NaN
2008 1.0 NaN
2009 1.0 NaN
2010 1.0 NaN
In [77]:
plt.close('all')
In [78]:
table.plot(style={'M': 'k-', 'F': 'k--'})
Out[78]:
<matplotlib.axes._subplots.AxesSubplot at 0x9fd5510>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

若云流风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值