Pandas 学习笔记
学习源于Pandas的中文doc:https://www.pypandas.cn/docs/
一、数据结构
Pandas 的主要数据结构是 Series(一维数据)与 DataFrame(二维数据),这两种数据结构足以处理金融、统计、社会科学、工程等领域里的大多数典型用例。对于 R 用户,DataFrame 提供了比 R 语言 data.frame 更丰富的功能。Pandas 基于 NumPy (opens new window)开发,可以与其它第三方科学计算支持库完美集成。
| 维数 | 名称 | 描述 |
|---|---|---|
| 1 | Series | 带标签的一维同构数组 |
| 2 | DataFrame | 带标签的,大小可变的,二维异构表格 |
二、导入与生成对象
如果未安装库,到python包的scripts文件夹下进行cmd,输入以下指令通过pip安装库。
pip install numpy
pip install pandas
以下列方式导入 Pandas 与 NumPy
import numpy as np
import pandas as pd
2.1. 生成Series对象
s = pd.Series([1, 3, 5, np.nan, 6, 8])
print(s)
#注意此处np.nan指的是numpy库中的NaN值
用值列表生成 Series 时,Pandas 默认自动生成整数索引
输出:
#output
0 1.0
1 3.0
2 5.0
3 NaN
4 6.0
5 8.0
dtype: float64
Process finished with exit code 0
2.2. 生成 DataFrame对象
使用columns参数指定DataFrame的列名
df = pd.DataFrame(columns=list('ABCD'))
print(df)
输出:
Empty DataFrame
Columns: [A, B, C, D]
Index: []
三、数据操作
简单赋值与取值
df = pd.DataFrame(columns=list('ABCD'))
df.head()
#赋值
#新增列E并赋值为1,2,3
df['E'] = ['1','2','3']
print(df)
#给第0行第A列赋值
df.at[0, 'A'] = 1
print(df)
#给第2行赋值
df.at[1] = [1,2,3,4,5]
print(df)
#按位置赋值:给第三行第1列赋值
df.iat[2, 0] = 21
print(df)
#取出第2行到s2(第二行索引为1)
s2 = df.iloc[1]
print(s2)
#取出E排
l2= df['D']
print(l2)
输出如下所示:
0 1.0
1 3.0
2 5.0
3 NaN
4 6.0
5 8.0
dtype: float64
Empty DataFrame
Columns: [A, B, C, D]
Index: []
A B C D E
0 NaN NaN NaN NaN 1
1 NaN NaN NaN NaN 2
2 NaN NaN NaN NaN 3
A B C D E
0 1 NaN NaN NaN 1
1 NaN NaN NaN NaN 2
2 NaN NaN NaN NaN 3
A B C D E
0 1 NaN NaN NaN 1
1 1 2 3 4 5
2 NaN NaN NaN NaN 3
A B C D E
0 1 NaN NaN NaN 1
1 1 2 3 4 5
2 21 NaN NaN NaN 3
A 1
B 2
C 3
D 4
E 5
Name: 1, dtype: object
0 NaN
1 4
2 NaN
Name: D, dtype: object
Process finished with exit code 0
提取列
data['A'] #单列
data[['A', 'B']] #多列
data.loc[:, 'A']
data.loc[:, ['A', 'B']]
提取行
data.loc[1] #第一行
data.loc[:1] #提取到第i行
data.loc[[0,1]] #提取多行
四、CSV文件处理 输入与输出
4.1. 写入与读取csv文件
#写入
df.to_csv('myfile.csv')
#读取
df1 = pd.read_csv('myfile.csv')
print(df1)
输出
Unnamed: 0 A B C D E
0 0 1 NaN NaN NaN 1
1 1 1 2.0 3.0 4.0 5
2 2 21 NaN NaN NaN 3
#写入excel
df.to_excel('myfile.xlsx', sheet_name='Sheet1')
#读取excel
df2 = pd.read_excel('myfile.xlsx', 'Sheet1', index_col=None, na_values=['NA'])
print(df2)
输出
Unnamed: 0 A B C D E
0 0 1 NaN NaN NaN 1
1 1 1 2.0 3.0 4.0 5
2 2 21 NaN NaN NaN 3

五、Head 与 Tail
先初始化一个pd
df=pd.DataFrame([[ 1 , 2 , 3 , 4 , 5 ],
[ 6 , 7 , 8 , 9 , 10],
[11 ,12 ,13 ,14 , 15],
['a','b','c','d','e'],
['f','g','h','i','j']],
columns=['A','B','C','D','E'])
print(df)
head() (opens new window)与 tail() (opens new window)用于快速预览 Series 与 DataFrame,默认显示 5 条数据,也可以指定显示数据的数量。
#取前部分,默认5条
print(df.head())
#只显示头两条
print(df.head(2))
#尾部同理
print(df.tail(3))
输出如下:
A B C D E
0 1 2 3 4 5
1 6 7 8 9 10
2 11 12 13 14 15
3 a b c d e
4 f g h i j
A B C D E
0 1 2 3 4 5
1 6 7 8 9 10
A B C D E
2 11 12 13 14 15
3 a b c d e
4 f g h i j
六、属性与底层数据
Pandas 可以通过多个属性访问元数据:
1. shape:
输出对象的轴维度,与 ndarray 一致
2. 轴标签
Series: Index (仅有此轴)
DataFrame: Index (行) 与列
df=pd.DataFrame([[ 1 , 2 , 3 , 4 , 5 ],
[ 6 , 7 , 8 , 9 , 10],
[11 ,12 ,13 ,14 , 15],
['a','b','c','d','e'],
['f','g','h','i','j']],
columns=['A','B','C','D','E'])
print(df)
#打印形状
print(df.shape)
#打印索引(左边的索引列)
print(df.index)
输出:
A B C D E
0 1 2 3 4 5
1 6 7 8 9 10
2 11 12 13 14 15
3 a b c d e
4 f g h i j
(5, 5)
RangeIndex(start=0, stop=5, step=1)
持续更新…
版权声明:本文为weixin_45726854原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。