初識 - Pandas

Pandas 作為流行的數據分析處理庫,使用非常簡潔方便纸巷。

1. 讀取 csv 文件

Pandas 可以非常方便地讀取 csv 文件:

>> import pandas as pd
>> df = pd.read_csv('data.csv', encoding='gbk')
>> df.head()

讀取結果:

df.head 默認顯示前 5 行,可以指定參數來讀取前 n 行眶痰。30 clolumns 指出該數據集共有 30 個特征瘤旨。

2.查看數據集的基本信息

>> df.info()

輸出結果:

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 32 entries, 0 to 31
Data columns (total 30 columns):
 #   Column                               Non-Null Count  Dtype  
---  ------                               --------------  -----  
 0   股票代碼                                 32 non-null     object 
 1   股票簡稱                                 32 non-null     object 
 2   現價(元)                                32 non-null     float64
 3   漲跌幅(%)                               32 non-null     float64
 4   分紅比例(%)2020.12.31                    32 non-null     float64
 5   分紅比例(%)2019.12.31                    32 non-null     float64
 6   分紅比例(%)2018.12.31                    32 non-null     float64
 7   分紅比例(%)2017.12.31                    32 non-null     float64
 8   分紅比例(%)2016.12.31                    32 non-null     float64
 9   加權凈資產收益率(%)2020.12.31                32 non-null     float64
 10  加權凈資產收益率(%)2019.12.31                32 non-null     float64
 11  加權凈資產收益率(%)2018.12.31                32 non-null     float64
 12  加權凈資產收益率(%)2017.12.31                32 non-null     float64
 13  加權凈資產收益率(%)2016.12.31                32 non-null     float64
 14  凈利潤現金含量占比平均(%)2016.12.31-2020.12.31  32 non-null     float64
 15  凈利潤現金含量占比(%)2019.12.31               32 non-null     float64
 16  凈利潤現金含量占比(%)2018.12.31               32 non-null     float64
 17  凈利潤現金含量占比(%)2017.12.31               32 non-null     float64
 18  凈利潤現金含量占比(%)2016.12.31               32 non-null     float64
 19  凈利潤現金含量占比(%)2020.12.31               32 non-null     float64
 20  資產負債率(%)2020.12.31                   32 non-null     float64
 21  資產負債率(%)2019.12.31                   32 non-null     float64
 22  資產負債率(%)2018.12.31                   32 non-null     float64
 23  資產負債率(%)2017.12.31                   32 non-null     float64
 24  資產負債率(%)2016.12.31                   32 non-null     float64
 25  銷售毛利率(%)2020.12.31                   32 non-null     float64
 26  銷售毛利率(%)2019.12.31                   32 non-null     float64
 27  銷售毛利率(%)2018.12.31                   32 non-null     float64
 28  銷售毛利率(%)2017.12.31                   32 non-null     float64
 29  銷售毛利率(%)2016.12.31                   32 non-null     float64
dtypes: float64(28), object(2)
memory usage: 7.6+ KB

df.info 可以幫助我們清晰地了解讀取的數據集的基本情況,包括數據集索引的數量和范圍竖伯、特征的數量和具體特征以及每個特征列包含的非空記錄的個數存哲、數據類型等等。

注:df.info() 的第一行信息也清晰地為我們揭示了讀取的 csv 文件在 pandas 內部的表示形式 - DataFrame 七婴。DataFrame 是 pandas 中最核心的數據結構祟偷,提供了非常多實用的 API 。

也可以使用 df.index 單獨查看索引的情況:

>> df.index
RangeIndex(start=0, stop=32, step=1)

使用 df.columns 查看列名(特征):

>> df.columns
Index(['股票代碼', '股票簡稱', '現價(元)', '漲跌幅(%)', '分紅比例(%)2020.12.31',
       '分紅比例(%)2019.12.31', '分紅比例(%)2018.12.31', '分紅比例(%)2017.12.31',
       '分紅比例(%)2016.12.31', '加權凈資產收益率(%)2020.12.31', '加權凈資產收益率(%)2019.12.31',
       '加權凈資產收益率(%)2018.12.31', '加權凈資產收益率(%)2017.12.31',
       '加權凈資產收益率(%)2016.12.31', '凈利潤現金含量占比平均(%)2016.12.31-2020.12.31',
       '凈利潤現金含量占比(%)2019.12.31', '凈利潤現金含量占比(%)2018.12.31',
       '凈利潤現金含量占比(%)2017.12.31', '凈利潤現金含量占比(%)2016.12.31',
       '凈利潤現金含量占比(%)2020.12.31', '資產負債率(%)2020.12.31', '資產負債率(%)2019.12.31',
       '資產負債率(%)2018.12.31', '資產負債率(%)2017.12.31', '資產負債率(%)2016.12.31',
       '銷售毛利率(%)2020.12.31', '銷售毛利率(%)2019.12.31', '銷售毛利率(%)2018.12.31',
       '銷售毛利率(%)2017.12.31', '銷售毛利率(%)2016.12.31'],
      dtype='object')

使用 df.dtypes 查看數據類型:

>> df.dtypes
股票代碼                                    object
股票簡稱                                    object
現價(元)                                  float64
漲跌幅(%)                                 float64
分紅比例(%)2020.12.31                      float64
分紅比例(%)2019.12.31                      float64
分紅比例(%)2018.12.31                      float64
分紅比例(%)2017.12.31                      float64
分紅比例(%)2016.12.31                      float64
加權凈資產收益率(%)2020.12.31                  float64
加權凈資產收益率(%)2019.12.31                  float64
加權凈資產收益率(%)2018.12.31                  float64
加權凈資產收益率(%)2017.12.31                  float64
加權凈資產收益率(%)2016.12.31                  float64
凈利潤現金含量占比平均(%)2016.12.31-2020.12.31    float64
凈利潤現金含量占比(%)2019.12.31                 float64
凈利潤現金含量占比(%)2018.12.31                 float64
凈利潤現金含量占比(%)2017.12.31                 float64
凈利潤現金含量占比(%)2016.12.31                 float64
凈利潤現金含量占比(%)2020.12.31                 float64
資產負債率(%)2020.12.31                     float64
資產負債率(%)2019.12.31                     float64
資產負債率(%)2018.12.31                     float64
資產負債率(%)2017.12.31                     float64
資產負債率(%)2016.12.31                     float64
銷售毛利率(%)2020.12.31                     float64
銷售毛利率(%)2019.12.31                     float64
銷售毛利率(%)2018.12.31                     float64
銷售毛利率(%)2017.12.31                     float64
銷售毛利率(%)2016.12.31                     float64
dtype: object

df.valuesnumpy.ndarray 的形式返回所有的數據:

>> df.values
array([['002690.SZ', '美亞光電', 42.24, -0.89, 123.42, 99.31, 105.65, 92.69,
        65.56, 19.1, 23.61, 20.14, 17.38, 15.78, 101.92, 92.11, 94.54,
        121.13, 107.02, 94.79, 19.7, 13.92, 14.84, 19.91, 12.83, 51.81,
        55.45, 54.94, 53.21, 52.67],
       ['600507.SH', '方大特鋼', 9.35, -7.06, 110.81, 41.46, 84.09, 83.55,
        50.19, 28.79, 27.05, 58.17, 67.67, 28.51, 140.16, 101.38, 122.07,
        100.56, 202.07, 174.74, 31.15, 47.03, 29.96, 39.99, 65.46, 22.71,
        24.68, 32.87, 32.03, 19.62],
       ['603866.SH', '桃李面包', 28.7, -0.1, 107.86, 96.24, 102.6, 73.35,
        31.0, 21.98, 19.56, 19.71, 22.36, 22.42, 125.26, 129.92, 125.08,
        127.25, 119.27, 124.75, 14.99, 27.82, 12.51, 10.51, 13.05, 29.97,
        39.57, 39.68, 37.7, 36.13],
       ...,
       ['600690.SH', '海爾智家', 26.64, -2.45, 25.82, 28.83, 28.77, 30.11,
        30.02, 17.67, 19.12, 21.0, 23.59, 20.41, 208.21, 183.79, 255.79,
        241.82, 161.37, 198.26, 66.52, 65.33, 66.93, 69.13, 71.37, 29.68,
        29.83, 29.0, 31.0, 31.02]], dtype=object)

3. 附加

下面打厘,小魚開始對上述讀取的數據集做一個簡單的處理修肠,以方便我們后續(xù)的使用。

指定新的列索引

原始數據集列索引中的字符串都是中文户盯,為了方便氛赐,我們來將它改為英文,注意順序的一致性哦~

df.columns = ['code', 'abbreviation', 'price', 'change', 
              'dividend2020', 'dividend2019', 'dividend2018', 'dividend2017', 'dividend2016', 
              'roe2020', 'roe2019', 'roe2018', 'roe2017', 'roe2016', 
              'averageCash', 'cash2019', 'cash2018', 'cash2017', 'cash2016', 'cash2020', 
              'assetLiability2020', 'assetLiability2019', 'assetLiability2018', 'assetLiability2017', 
              'assetLiability2016', 'gross2020', 'gross2019', 'gross2018', 'gross2017', 'gross2016']

修改之后就變成下面這樣啦~

選取指定的特征

原始數據集的特征也太多了先舷,不便于我們后續(xù)的學習,下面滓侍,小魚只挑選部分特征蒋川。

df = df[['code', 'price', 'change', 'dividend2020', 'roe2020', 
        'averageCash', 'cash2020', 'assetLiability2020', 'gross2020']]

現在,整個數據集就簡單很多啦~

設置行索引

我們知道股票的代碼是唯一的撩笆,像身份證 ID 一樣捺球,即使上市公司的名稱發(fā)生改變,股票代碼也永遠不會改變夕冲。

df = df.set_index('code')

因此氮兵,可以使用 code 列作為 DataFrame 的索引(行索引):

最后,我們將 df 保存成新的 csv 文件歹鱼,下次使用數據集的時候泣栈,直接讀取新的 csv 就好啦~

df.to_csv('simple_data.csv')
pd.read_csv('simple_data.csv', index_col='code').tail()
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子南片,更是在濱河造成了極大的恐慌掺涛,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疼进,死亡現場離奇詭異薪缆,居然都是意外死亡,警方通過查閱死者的電腦和手機伞广,發(fā)現死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進店門拣帽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人嚼锄,你說我怎么就攤上這事减拭。” “怎么了灾票?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵峡谊,是天一觀的道長。 經常有香客問我刊苍,道長既们,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任正什,我火速辦了婚禮啥纸,結果婚禮上,老公的妹妹穿的比我還像新娘婴氮。我一直安慰自己斯棒,他們只是感情好,可當我...
    茶點故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布主经。 她就那樣靜靜地躺著荣暮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪罩驻。 梳的紋絲不亂的頭發(fā)上穗酥,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天,我揣著相機與錄音惠遏,去河邊找鬼砾跃。 笑死,一個胖子當著我的面吹牛节吮,可吹牛的內容都是我干的抽高。 我是一名探鬼主播,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼透绩,長吁一口氣:“原來是場噩夢啊……” “哼翘骂!你這毒婦竟也來了壁熄?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤雏胃,失蹤者是張志新(化名)和其女友劉穎请毛,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體瞭亮,經...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡方仿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了统翩。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片仙蚜。...
    茶點故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖厂汗,靈堂內的尸體忽然破棺而出委粉,到底是詐尸還是另有隱情,我是刑警寧澤娶桦,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布贾节,位于F島的核電站,受9級特大地震影響衷畦,放射性物質發(fā)生泄漏栗涂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一祈争、第九天 我趴在偏房一處隱蔽的房頂上張望斤程。 院中可真熱鬧,春花似錦菩混、人聲如沸忿墅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽疚脐。三九已至,卻和暖如春邢疙,著一層夾襖步出監(jiān)牢的瞬間棍弄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工秘症, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人式矫。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓乡摹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親采转。 傳聞我的和親對象是個殘疾皇子聪廉,可洞房花燭夜當晚...
    茶點故事閱讀 45,055評論 2 355

推薦閱讀更多精彩內容