Python数据处理库pandas进阶教程
本教程分为以下几个部分:
- Pandas的基本数据结构
- 数据的读取和写入
- 数据清洗和预处理
- 数据的合并和分组
- 时间序列数据的处理
- 数据的可视化
1. Pandas的基本数据结构
Pandas的两种基本数据结构是Series和DataFrame。
- Series是一种类似于一维数组的对象,其中的每个元素都有一个标签(或索引)。
- DataFrame是一个类似于二维表格的对象,其中的每一列可以是不同的数据类型(数值,字符串,布尔值等)。
创建Series和DataFrame对象的方法非常简单。下面是一个创建Series对象的例子:
import pandas as pd
s = pd.Series([1, 3, 5, np.nan, 6, 8])
下面是一个创建DataFrame对象的例子:
import pandas as pd
import numpy as np
data = {'name': ['Tom', 'Jerry', 'Spike'], 'age': [21, 22, 23], 'gender': ['M', 'M', 'F']}
df = pd.DataFrame(data)
2. 数据的读取和写入
Pandas可以读取和写入各种格式的数据,包括CSV,Excel,SQL数据库和HTML。下面是一些读取和写入数据的例子。
读取CSV文件:
import pandas as pd
df = pd.read_csv('data.csv')
读取Excel文件:
import pandas as pd
df = pd.read_excel('data.xlsx')
将数据写入CSV文件:
import pandas as pd
df.to_csv('data.csv', index=False)
3. 数据清洗和预处理
数据清洗和预处理是数据分析的一个重要的步骤。Pandas提供了各种方法来清理和预处理数据,包括去重,填充缺失值,删除不需要的列和行等。下面是一些数据清洗和预处理的例子。
去重:
import pandas as pd
df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar'], 'B': [1, 2, 3, 4]})
df.drop_duplicates()
填充缺失值:
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, np.nan, 4], 'B': [5, np.nan, np.nan, 8]})
df.fillna(value=0)
删除不需要的列和行:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8], 'C': [9, 10, 11, 12]})
df.drop(['B'], axis=1)
df.drop(1, axis=0)
4. 数据的合并和分组
合并和分组是数据处理中的常用操作。Pandas提供了各种方法来合并和分组数据。下面是一些示例。
合并:
import pandas as pd
df1 = pd.DataFrame({'key': ['a', 'b', 'c', 'd'], 'value': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['b', 'd', 'e'], 'value': [5, 6, 7]})
pd.merge(df1, df2, on='key')
分组:
import pandas as pd
df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'], 'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'], 'C': np.random.randn(8), 'D': np.random.randn(8)})
df.groupby('A').sum()
5. 时间序列数据的处理
Pandas提供了各种方法来处理时间序列数据。下面是一些示例。
生成时间序列:
import pandas as pd
dates = pd.date_range('20220101', periods=6)
df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list('ABCD'))
时间移动:
import pandas as pd
df = pd.DataFrame(np.random.randn(6, 4), index=pd.date_range('20220101', periods=6), columns=list('ABCD'))
df.shift(2)
6. 数据的可视化
Pandas提供了各种方法来可视化数据。下面是一些示例。
绘制直方图:
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame({'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8], 'C': [9, 10, 11, 12]})
df.plot(kind='bar')
plt.show()
绘制散点图:
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame(np.random.randn(10, 2))
df.plot(kind='scatter', x=0, y=1)
plt.show()
以上是本教程的完整攻略,希望对您的学习有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 数据处理库 pandas进阶教程 - Python技术站