叨叨博主即将上线
昨天有个博友评论说,
喂,大佬,文章看的很爽,但是,代码为啥没有右边→_→的呢
咦?吓的我机灵
难道我的代码写了一半么... ...
美丽大方的博主怎么能犯如此错误
赶紧打开,左看右看,完整的呀
忽然间,意识到,是手机版本
手机... ... 哥,手机你滑一下就行了。
唉,对,向左这么一拨拉,就看到右边的代码了... ...
昨天说了,要写dataframe,那么今天就写它了
dataframe英文机翻 数据框架
其实它是一种表格型数据结构
看到没?又是表格,就是那个excel
它含有一组有序的列,每列可以是不同的值。
DataFrame既有行索引
,也有列索引
所以有两个新词需要记住
列名(列索引)columns 与行名(行索引)index
举个栗子
看一下dataframe怎么创建出来
一般,也就是最常用的,根据字典创建
记住,是字典哦
import pandas as pd
dict = {
'boys':[1,2,3],
'girl':[5,6,7]
}
df = pd.DataFrame(dict)
print(df)
复制代码
哇塞,写完了,真厉害 用一个字典就创建了一个dataframe
结果展示为
注意看,这是一个3行2列的数据
上图绿框框区域就是数据的核心区域了
dict中boy和girl是字典的key 对应的dataframe中的columns name
由于我们偷懒,没有设置index,
所以它,就跟series一样,自动给我们生成一个数字索引
没设置?
那就表示可以设置喽!
那还啰嗦啥,上吧
dict = {
'boys':[1,2,3],
'girls':[5,6,7]
}
df = pd.DataFrame(dict,index=['a','b','c'])
print(df)
复制代码
结果符合我们想的预期(我就知道)
boys girls
a 1 5
b 2 6
c 3 7
复制代码
在改改,修改成class1,class2,class3
唉,符合情景了,每个班的男神,女神人数
boys girl
class1 1 5
class2 2 6
class3 3 7
复制代码
第一种创建方式捣鼓完毕了
还能怎么创建呢?
起开,我要秀了
还是刚才那个数据
df = pd.DataFrame([[1,5],[2,6],[3,7]],index=['class1','class2','class3'])
print(df)
复制代码
我没有用dict,用了一个二维数组
这个地方,你注意
dataframe中数组是按照行写的
为啥这么写,这表示
一班男女多少人 二班男女多少人 三班男女多少人
这是我们人类的正常描述逻辑
结果看一下
0 1
class1 1 5
class2 2 6
class3 3 7
复制代码
不完美!boys和girls不见了,因为声明的时候没有用
所以,竟然给我们默认值0,1了
这怎么能忍!
赶紧翻翻手册
df = pd.DataFrame([[1,5],[2,6],[3,7]],columns=['boys','girls'],index=['class1','class2','class3'])
print(df)
复制代码
这就对了,刚才还说dataframe有columns和index呢
我们给设置上,不就完了
O98k
又学会了,分开创建的一种方式了
鼓鼓掌,继续吧
其实还能从文件中创建
因为这个我想放到后面讲
所以就没写上
其实博主是一个非常沉稳的人物
你看,我之前写过 blog.csdn.net/hihell/arti… 多么技术向的技术文章!
学会创建之后,你已经走了很大一步
接下来,就要用了
用它干事,才是硬道理
第一个,你要获取吧
数据拿到了,不读取,哪有这个道理
这个地方,还是时刻打开着官方文章,
要不我随时翻车
pandas.pydata.org/pandas-docs…
获取一列
df = pd.DataFrame([[1,5],[2,6],[3,7]],columns=['boys','girls'],index=['class1','class2','class3'])
print(df['boys'])
复制代码
这个获取到的是一个series
如果我想要同时获取boys和girls呢?
df = pd.DataFrame([[1,5],[2,6],[3,7]],columns=['boys','girls'],index=['class1','class2','class3'])
print(df[['boys','girls']])
复制代码
只需要df[]
中在嵌套你想要的columns列名称就可以了
df[['列名1','列名2']
]
一定要注意是这样子的哦~
如果获取一行呢?
好慌,我好像没准备, 被问住了... ...
df = pd.DataFrame([[1,5],[2,6],[3,7]],columns=['boys','girls'],index=['class1','class2','class3'])
#print(df[['boys','girls']])
print(df.ix[0])
print(df.ix['class1'])
复制代码
你只需添加一个ix
就可以啦
当然,作为大佬的梦想橡皮擦,肯定还有其他办法
我们后面说函数的时候
在细细分解
最后一个知识点
我要获取dataframe中的一个值?
一个值?
你是想获取class1班的boys数量?
yes 是的
我随手就甩给你4个办法
print(df['boys'][0])
print(df['boys']['class1'])
print(df.ix['class1'][0])
复制代码
额,好像少了一个,自己补上吧
看着是不是像二维数组的用法
像,就对了
就这个类比,
学习才快
一个机智风趣的大大大佬,梦想橡皮擦,这是她的公众号,你不想关注一下吗
其实不关注,给我一个评论,也是极好的
毕竟,我可是要上头条的人
最最后,祝你