2018-11-30课程02pandas

pandas

  • 什么是pandas

官网 :pandas is an open source, BSD-licensed library providing high-performance, easy-to-use data structures and data analysis tools for the Python programming language.

  • 常用数据类型
    1. Series 一维, 带标签的数组
    2. DataFrame 二维, Series 容器
import pandas as pd
import string
import numpy as np
t = pd.Series(np.arange(10), index=list(string.ascii_uppercase[:10]))
t
A    0
B    1
C    2
D    3
E    4
F    5
G    6
H    7
I    8
J    9
dtype: int64
type(t)
pandas.core.series.Series
a = {string.ascii_uppercase[i] : i for i in range(10)}
a
{'A': 0,
 'B': 1,
 'C': 2,
 'D': 3,
 'E': 4,
 'F': 5,
 'G': 6,
 'H': 7,
 'I': 8,
 'J': 9}
pd.Series(a)
A    0
B    1
C    2
D    3
E    4
F    5
G    6
H    7
I    8
J    9
dtype: int64
pd.Series(a, index=list(string.ascii_uppercase[5:15]))
# dtype 为 float64   np中的nan 为float 
F    5.0
G    6.0
H    7.0
I    8.0
J    9.0
K    NaN
L    NaN
M    NaN
N    NaN
O    NaN
dtype: float64
t
A    0
B    1
C    2
D    3
E    4
F    5
G    6
H    7
I    8
J    9
dtype: int64
t[2:10:2]
C    2
E    4
G    6
I    8
dtype: int64
t[1]
1
t[[2, 3, 6]]
C    2
D    3
G    6
dtype: int64
t[t>4]
F    5
G    6
H    7
I    8
J    9
dtype: int64
t["F"]
5
t[["A", "F", "g"]]
/anaconda3/lib/python3.6/site-packages/pandas/core/series.py:851: FutureWarning: 
Passing list-likes to .loc or [] with any missing label will raise
KeyError in the future, you can use .reindex() as an alternative.

See the documentation here:
https://pandas.pydata.org/pandas-docs/stable/indexing.html#deprecate-loc-reindex-listlike
  return self.loc[key]





A    0.0
F    5.0
g    NaN
dtype: float64
t.index
Index(['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'], dtype='object')
t.values
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
type(t.index)
pandas.core.indexes.base.Index
type(t.values)
numpy.ndarray

pandas之DataFrame

  • 通过粘贴板创建DataFrame
import webbrowser
link = "https://www.tiobe.com/tiobe-index/"
webbrowser.open(link)
True
df = pd.read_clipboard()
df
t = pd.DataFrame(np.arange(12).reshape((3, 4)))
t

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>0</th>
<th>1</th>
<th>2</th>
<th>3</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>0</td>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<th>1</th>
<td>4</td>
<td>5</td>
<td>6</td>
<td>7</td>
</tr>
<tr>
<th>2</th>
<td>8</td>
<td>9</td>
<td>10</td>
<td>11</td>
</tr>
</tbody>
</table>
</div>

  • DataFrame对象既有行索引,又有列索引
  • 行索引,表明不同行,横向索引,叫index,0轴,axis=0
  • 列索引,表名不同列,纵向索引,叫columns,1轴,axis=1
t1 = pd.DataFrame(np.arange(12).reshape(3, 4), index=list(string.ascii_lowercase[:3]), columns=list(string.ascii_uppercase[-4:]))
t1

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>W</th>
<th>X</th>
<th>Y</th>
<th>Z</th>
</tr>
</thead>
<tbody>
<tr>
<th>a</th>
<td>0</td>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<th>b</th>
<td>4</td>
<td>5</td>
<td>6</td>
<td>7</td>
</tr>
<tr>
<th>c</th>
<td>8</td>
<td>9</td>
<td>10</td>
<td>11</td>
</tr>
</tbody>
</table>
</div>

  • 通过传入字典创建
d1 = {"name":["xiaoming", "xiaogang"], "age":[20, 22], "tel": [10086, 10010]}
# 传入字典
t2 = pd.DataFrame(d1)
t2

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>name</th>
<th>age</th>
<th>tel</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>xiaoming</td>
<td>20</td>
<td>10086</td>
</tr>
<tr>
<th>1</th>
<td>xiaogang</td>
<td>22</td>
<td>10010</td>
</tr>
</tbody>
</table>
</div>

type(t2)
pandas.core.frame.DataFrame
# 通过列表字典创建
d2 = [{"name": "xiaoming","age":33,"tel":10010},{"name":"xiaohong","tel": 10010},{"name":"xiaowang","age":19}]
t3 = pd.DataFrame(d2) #没有值得地方是NaN
t3

<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}

.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

</style>
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>age</th>
<th>name</th>
<th>tel</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>33.0</td>
<td>xiaoming</td>
<td>10010.0</td>
</tr>
<tr>
<th>1</th>
<td>NaN</td>
<td>xiaohong</td>
<td>10010.0</td>
</tr>
<tr>
<th>2</th>
<td>19.0</td>
<td>xiaowang</td>
<td>NaN</td>
</tr>
</tbody>
</table>
</div>

属性

t3.index
#行索引
RangeIndex(start=0, stop=3, step=1)
t3.columns
#列索引
Index(['age', 'name', 'tel'], dtype='object')
t3.values
# ndarray类型
array([[33.0, 'xiaoming', 10010.0],
       [nan, 'xiaohong', 10010.0],
       [19.0, 'xiaowang', nan]], dtype=object)
t3.shape
(3, 3)
t3.dtypes
age     float64
name     object
tel     float64
dtype: object
# 维度
t3.ndim
2

整体情况

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,539评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,911评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,337评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,723评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,795评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,762评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,742评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,508评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,954评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,247评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,404评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,104评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,736评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,352评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,557评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,371评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,292评论 2 352

推荐阅读更多精彩内容

  • 开始吧! pandas主要用于数据分析,准确而言,是对数值的分析,而Python对Excel和SPSS的超越之处就...
    且行歌阅读 1,494评论 0 1
  • # S!T!A!R!T```python%matplotlib inlineimport numpy as npi...
    红旗主旋律阅读 693评论 0 0
  • 数据读取和输出 读取格式 Function Descriptionread_csv Load deli...
    且行歌阅读 840评论 0 1
  • 简书阅读体验不佳(与有道云笔记的markdown解析不同),因此建议进入传送门 jupyter notebook:...
    不做废物阅读 2,217评论 0 1
  • 殢人娇.剑耒 文/竹兰答水 征鼓相催,琥珀夜光杯碎。束袍带、冷帐寒被。别来年半,总是鞍马睡。却换得,汉阙上林春媚。...
    竹兰答水阅读 179评论 0 0