干货 | 一文让你了解Pandas数据结构

数据森麟

共 2832字,需浏览 6分钟

 ·

2020-04-14 23:29


36ed5445ca409686831ae5b00713a4f4.webp


     作者:木木


     来源:Python数据分析实战与AI干货

1导入相关的包
import numpy as np
import pandas as pd
from pandas import DataFrame
from pandas import Series


2Series 的相关操作
obj = Series([47-53])
print(obj)
print(obj.values)
print(obj.index)

b83e762ce2ba8251080b3ca2d02199b2.webp

obj2 = Series([47-53], index=['d''b''a''c'])
print(obj2)
print(obj2['a'])

cca821aed155212632388f678b351b12.webp

obj2['d'] = 6
print(obj2[['c''a''d']])

f206a08aac45505f0c18bb06223df1ef.webp

obj2[obj2 > 0]

2ef82d493dfc4a37e327f1b83f052562.webp

obj2 * 2

05922c1db36ddcaae573184a5fc2758a.webp

np.exp(obj2)

4344ac8343886b44285b9def8c586608.webp

print('b' in obj2)
print('e' in obj2)

a89edc1c45dab435557ce00988bd9c31.webp

# Dict -> Series
sdata = {'Ohio'35000'Texas'71000'Oregon'16000'Utah'5000}
obj3 = Series(sdata)
obj3

add7a8a197a0ceb5f6916be492f17e66.webp

states = ['California''Ohio''Oregon''Texas']
obj4 = Series(sdata, index=states) # 自动与dict的key匹配
obj4

8731d5d19d99601bc6929bdd4d039d4b.webp

print(pd.isnull(obj4))
print(pd.notnull(obj4))

7e86de9650fa63f567bda681a654e65a.webp

print(obj3 + obj4) # 数据自动对齐

0750099137ad0e9feedbb9a6250ccf60.webp

obj4.name = '人口'
obj4.index.name = '州'
obj4

9578158342ef1f6e4fbcfefb3830c006.webp

obj = Series([47-53])
obj.index = ['Bob''Steve''Jeff''Ryan'# 更新索引
obj

96b474f878875f03f3020aa496a58dc8.webp

3DataFrame 的相关操作
data = {'state': ['Ohio''Ohio''Ohio''Nevada''Nevada'],
        'year': [20002001200220012002],
        'pop': [1.51.73.62.42.9]}
frame = DataFrame(data) # key对应frame的列名
frame

0ea7a3dbfdddb8bcc0df7c171d0e3f95.webp

frame = DataFrame(data, columns=['year''state''pop']) # 指定列顺序
frame

eeceab3564a3ca3935875846cbbb350b.webp

frame2 = DataFrame(data,
                   columns=['year''state''pop''debt'],
                   index=['one''two''three''four''five']) # 分别指定行列名字,缺失值自动填充,比如debt列。
frame2

7721f758f7ba1e483042a6b000530eb8.webp

print(frame2['state']) # 通过索引返回指定列,返回类型为Series
print(frame2.year)
print(type(frame.state))

f460a4167dda1a3fa1481bbcc020e503.webp

print(frame2.loc['three']) # 使用loc访问行,iloc针对默认的数字索引
print(frame2.iloc[0])

c4bbdcbc654b407dcf7cbde99801339f.webp

frame2['debt'] = 16.5 # 修改整列值
frame2

9ccf2068980038e5a04423b970dcbc50.webp

frame2['debt'] = np.arange(5.)
frame2

7859f4b76f1afd6619cda3c4f1801bd4.webp

val = Series([-1.2-1.5-1.7], index=['two''four''five'])
frame2['debt'] = val # 索引不匹配的话自动补NaN
frame2

8fdb700c59764b5c9f8150aca172c11c.webp

del frame2['eastern'# 删除指定列
frame2.columns

75d01ade1977848a8a710b5f71a7cdf6.webp

pop = {'Nevada': {20012.420022.9},
       'Ohio': {20001.520011.720023.6}}
frame3 = DataFrame(pop) # 通过嵌套字典指定列和行索引
frame3.T # 转置

0dcf26eeb0e01fd5ca58ce131d15a275.webp

pop = {'Nevada': {20012.420022.9},
       'Ohio': {20001.520011.720023.6}}
frame3 = DataFrame(pop) # 通过嵌套字典指定列和行索引
DataFrame(pop, index=[200120022003]) # 索引2003匹配不到,自动填充NaN

0635eef260385704567f9264f40c14c2.webp

pdata = {'Ohio': frame3['Ohio'][:-1],
         'Nevada': frame3['Nevada'][:2]} # 使用Series替代普通数组
DataFrame(pdata)

14f7bd911e1bc702c539002e7f9d1336.webp

frame3.index.name = 'year' # 设置索引和列的名字
frame3.columns.name = 'state'
frame3

87ffd5b3597304b8a6ed70e980ab910c.webp

print('Ohio' in frame3.columns)
print(2003 in frame3.index)

4c5dd9563af3f3e7c8bca5b190515d4e.webp

# Index的方法和属性
# append:      连接另一个Index对象,产生一个新的Index。
# diff:        计算差集,并得到一个Index。
# intersection:计算交集
# union:       计算并集
# isin:        计算一个指示各值是否都包含在参数集合中的布尔型数组
# delete:      删除索引i处的元素,并得到新的Index。
# drop:        删除传入的值,并得到新的Index。
# insert:      将元素插入到索引i处,并得到新的Index。
# is_monotonic:如果单调增长,返回True。
# is_unique:   当Index没有重复值时,返回True。
# unique:      计算Index中唯一值得数组



◆ ◆ ◆  ◆ 




长按二维码关注我们



数据森麟公众号的交流群已经建立,许多小伙伴已经加入其中,感谢大家的支持。大家可以在群里交流关于数据分析&数据挖掘的相关内容,还没有加入的小伙伴可以扫描下方管理员二维码,进群前一定要关注公众号奥,关注后让管理员帮忙拉进群,期待大家的加入。


管理员二维码:



猜你喜欢

 笑死人不偿命的知乎沙雕问题排行榜

 用Python扒出B站那些“惊为天人”的阿婆主!

 全球股市跳水大战,谁最坑爹!

 上万条数据撕开微博热搜的真相!

 你相信逛B站也能学编程吗

浏览 34
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报