pandas库知识点总结
- 读取文件
这里是读入csv文件,要注意encoding参数的设置.该csv文件是’gbk’编码的,开始的时候不知道,我把encoding设置成了’utf-8’,结果读取的数据中中文是乱码的
df_data = pd.read_csv(filename, encoding="gbk")
- pandas的index对象
用列表设置索引,这里的索引是行索引,注意在设置索引时如果与原数据的索引不匹配,会使原数据变成Nan值
In[11]: data = pd.Series(['a', 'b', 'c'], index=[1, 3, 5])
data
Out[11]: 1 a
3 b
5 c
```python
data = pd.DataFrame(data,index=labels1)
- dataframe结构的切片和索引
- loc 属性
这里的dataframe类似于多维数组,使用loc属性对index进行行索引
In[14]: data.loc[1]
Out[14]: 'a'
In[15]: data.loc[1:3]
Out[15]: 1 a
3 b
dtype: object
- iloc 属性
它的索引可以使用iloc属性实现,下面的代码提取了242-410行,第四列
alarm_dates = df_alarm.iloc[242:410, 3]
- 使用列标题来查找column
In[18]: area = pd.Series({'California': 423967, 'Texas': 695662,
'New York': 141297, 'Florida': 170312,
'Illinois': 149995})
pop = pd.Series({'California': 38332521, 'Texas': 26448193,
'New York': 19651127, 'Florida': 19552860,
'Illinois': 12882135})
data = pd.DataFrame({'area':area, 'pop':pop})
data
Out[18] : area pop
California 423967 38332521
Florida 170312 19552860
Illinois 149995 12882135
New York 141297 19651127
Texas 695662 26448193
- 将pandas转换成二维数组
使用values属性将dataframe 转换成数组
In[24]: data.values
Out[24]:
array([[ 4.23967000e+05, 3.83325210e+07, 9.04139261e+01],
[ 1.70312000e+05, 1.95528600e+07, 1.14806121e+02],
[ 1.49995000e+05, 1.28821350e+07, 8.58837628e+01],
[ 1.41297000e+05, 1.96511270e+07, 1.39076746e+02],
[ 6.95662000e+05, 2.64481930e+07, 3.80187404e+01]])
5 .写入文件,这里是把pandas数据写入csv文件
df_datai.to_csv(filename, encoding="gbk")