# Python学习--Pandas
2019-01-17 本文已影响0人
Demafic
Pandas中的数据类型
Pandas是基于两种数据类型:series和dataframe
series是一种一维的数据类型。
dataframe是一个二维的,表格型的数据结构类型。
Pandas数据导入
df = pd.read_csv('文件名/文件地址')
如果,py文件与你要导入的文件在同一个文件夹,则只需要写明文件名即可,否则要详细写明文件的地址。
其中,函数read_csv()
中的参数重点是header
和encoding
。
header
关键字告诉Pandas哪些是数据的列名如果没有则将它设为None
,;
encoding
关键字通常在你数据集里有中文时加上,表明encoding='gkb'
,防止乱码。
简单的数据查看
df.head(x)
#查看前x行的数据
df.tail(x)
#查看后x行的数据
但是要注意使用tail
函数时,不是从最后一行倒着显示的,而是按照数据原来的顺序显示的。
简单的数据查找
如果我们只对表中的一列或者几列感兴趣,那么我们只需利用列的标签就能轻松做到提取其中的一整列。
df['列标签的名字']
注意,当我们提取列时,最终得到的是一个series。
同时我们可以利用条件不等式来得到我们希望看到的数据。
如:
df['xxx']<1000
最终会返回一个dataframe。其中true
表示符合条件,而False
反之。
同时,你也可以这么写:
df[df['xxx']<1000]
这得到的是满足条件的记录的所有数据。
当然你也可以通过复合条件表达式来进行过滤:
df[(df['xxx']<1000)&(df['yyy']>1000)]
如果你的数据中含有字符串,那么你也可以使用字符串方法来进行过滤:
df[df['Water Year'].str.startswith('xxx')]
最终返回的是含有以xxx开头的字符串的记录的所有数据。
索引
我们也可以通过行标签来获得想要的行,获取行数据的方法是根据标签的类型而定的。
如果你的行标签是数字型,那么你可以通过iloc
来引用:
df.iloc[30]
如果你的数据集中含有年份或者年龄的列,可以通过这些年龄或年份来引用行,这时首先需要设置一个新的索引:
df = df.set_index(['xxx'])
其中,xxx为你想设置为索引的那一列的列名。
由于我们设置的索引列中都是字符型数值,所以我们不能再使用iloc
,而是用loc
。
df.loc['2019/1']