|
Pandas库介绍
Pandas 是一个用于数据分析的 Python 第三方库,能够处理和分析不同格式的数据,例如:CSV、Excel、SQL 数据库等。Pandas 提供了两种数据结构,分别为 Series 和 DataFrame,灵活而方便地进行数据分析和操作。
以下是 Pandas 的核心概念和功能:
- Series:类似于 NumPy 的 ndarray,可以存储一维数组,不同的是它能够自定义索引值。
- DataFrame:是一个表格型的数据结构,拥有行和列的索引,类似于 Excel 表格,可以存储多维数组。DataFrame 可以被看成是Series类型的容器,每一列都是一个Series。
- Pandas 读取和写入数据:Pandas 可以处理不同文件格式和数据源的数据,例如:CSV、Excel、SQL 数据库等。使用 Pandas,你可以轻松的读取、整理和清理这些数据,最终生成一个 DataFrame。
- 数据清洗:Pandas 可以构建数据管道,以图形化的方式进行数据操作和转换,例如:删减列和行,数据的修改和替换,数据去重等。
- 数据可视化:Pandas 可以通过 matplotlib 库进行数据可视化,将最终的数据可视化并呈现给用户。
Pandas 的功能十分丰富,可以处理任何类型的数据和数据结构,并提供多种方式进行数据操作和分析。由于其易学易用和高效性,Pandas 已成为数据科学和数据分析领域必不可少的工具之一。
如何从CSV、Excel、JSON等不同文件格式中读取数据到Pandas中?
Pandas 支持读取和写入多种数据文件格式,包括 CSV、Excel、JSON 等。下面是一些示例代码,演示如何将不同的文件格式读取到 Pandas 中。
从 CSV 文件中读取数据:- import pandas as pd data = pd.read_csv('data.csv') print(data)
复制代码 从 Excel 文件中读取数据:- import pandas as pd data = pd.read_excel('data.xlsx', sheet_name='Sheet1') print(data)
复制代码 从 JSON 文件中读取数据:- import pandas as pd data = pd.read_json('data.json') print(data)
复制代码 你还可以设置读取时的参数,例如解析数据的方式、数据类型等。在 Pandas 中,有许多参数可以配置,以适应不同的需求和数据类型。可以参考官方文档以了解更多信息。
如何在Pandas中处理缺失值(NaN)?
Pandas中处理缺失值有以下几种方法:
- dropna()函数:删除包含NaN的行或列(默认删除包含NaN的行)。
- fillna()函数:将NaN值替换为其他数据(可以是0,平均值等)。
- isna()函数:返回一个布尔值,表示数据是否为NaN。
- notna()函数:返回一个布尔值,表示数据是否不为NaN。
- replace()函数:替换数据中的一个值为另一个值。
下面是一个示例代码,演示如何使用Pandas处理缺失值:- import pandas as pd
- import numpy as np
- # 创建包含NaN的DataFrame
- data = {'A': [1, 2, np.nan, 4],
- 'B': [5, np.nan, np.nan, 8],
- 'C': [9, 10, 11, 12]}
- df = pd.DataFrame(data)
- # 使用dropna删除包含NaN的行
- df1 = df.dropna()
- print(df1)
- # 使用fillna将NaN替换为0
- df2 = df.fillna(0)
- print(df2)
- # 使用fillna将NaN替换为平均值
- df3 = df.fillna(df.mean())
- print(df3)
- # 使用isna返回布尔值
- df4 = df.isna()
- print(df4)
- # 使用replace替换值
- df5 = df.replace(np.nan, 0)
- print(df5)
复制代码 输出结果- A B C
- 0 1.0 5.0 9
- 3 4.0 8.0 12
- A B C
- 0 1.0 5.0 9
- 1 2.0 0.0 10
- 2 0.0 0.0 11
- 3 4.0 8.0 12
- A B C
- 0 1.0 5.0 9
- 1 2.0 6.5 10
- 2 2.333333 6.5 11
- 3 4.0 8.0 12
- A B C
- 0 False False False
- 1 False True False
- 2 True True False
- 3 False False False
- A B C
- 0 1.0 5.0 9
- 1 2.0 0.0 10
- 2 0.0 0.0 11
- 3 4.0 8.0 12
复制代码 如何对Pandas中的数据进行简单的描述性统计?
Pandas中可以使用describe方法对数据进行简单的描述性统计,包括计数、平均数、标准差、最小值、25%,50%和75%分位数以及最大值等。具体实现步骤如下:
- 导入Pandas库。
- 读取数据。
- 使用describe方法对数据进行简单的描述性统计。
- import pandas as pd
- # 读取csv文件
- data = pd.read_csv('data.csv')
- # 对整个数据框进行描述性统计
- data.describe()
- # 对特定列进行描述性统计(例如,统计age列的描述性统计)
- data['age'].describe()
复制代码 如何对Pandas中的数据进行分组与聚合操作?
Pandas中的数据分组和聚合操作可以通过groupby方法来实现。具体步骤如下:
- 使用groupby方法将数据按照某一列或多列进行分组,例如:df.groupby('列名'),或者df.groupby(['列名1', '列名2'])
- 对分组后的数据进行聚合计算,可以使用sum、mean、count等方法,例如:df.groupby('列名').sum() 或 df.groupby(['列名1', '列名2']).mean()
- 可以使用agg方法进行自定义聚合计算,例如:df.groupby('列名').agg({'列名1': 'sum', '列名2': 'mean'})
- 也可以使用apply方法对每个分组执行特定的函数,例如:df.groupby('列名').apply(function)
- 可以使用transform方法对每个分组进行数据转换,例如:df.groupby('列名').transform(lambda x: x - x.mean())
总之,Pandas的数据分组和聚合操作非常灵活,可以根据不同的需求进行不同的操作,提供了很大的便利性。
如何使用Pandas进行日期和时间处理?
Pandas支持datetime格式的数据,可以使用pandas.to_datetime函数将字符串格式的日期转换为datetime格式,并进行各类日期和时间的计算和操作。
以下是一些常用的日期和时间处理方法:
- 创建日期时间索引 可以使用pandas.date_range()和pandas.DatetimeIndex()函数创建日期时间索引。
- 转换日期格式 可以使用pandas.to_datetime()函数将字符串格式的日期转换为datetime格式,或将日期格式化为指定格式。
- 获取日期时间属性 可以使用.dt属性来获取datetime格式数据的年、月、日、小时、分钟、秒等属性值。
- 偏移量计算 可以使用pandas.DateOffset()函数来进行日期偏移量计算,如计算前一天、前一周、前一月等。
- 时间序列重采样 可以使用pandas.resample()函数对时间序列数据进行重采样,如按月、周、日等频率进行统计。
- 日期时间操作 可以使用datetime.timedelta()函数进行日期和时间的加减操作。
- import pandas as pd
- import datetime
- # 创建日期时间索引
- dates = pd.date_range(start='20220101', end='20220110', freq='D')
- print(dates)
- # 转换日期格式
- date_str = '20220101'
- date_obj = pd.to_datetime(date_str, format='%Y-%m-%d')
- print(date_obj)
- # 获取日期时间属性
- print(date_obj.year)
- print(date_obj.month)
- print(date_obj.day)
- print(date_obj.hour)
- print(date_obj.minute)
- print(date_obj.second)
- # 偏移量计算
- date_offset = pd.DateOffset(months=1)
- new_date = date_obj + date_offset
- print(new_date)
- # 时间序列重采样
- data = pd.DataFrame({'date': dates, 'value': range(len(dates))})
- data.set_index('date', inplace=True)
- resample_data = data.resample('W').sum()
- print(resample_data)
- # 日期时间操作
- delta = datetime.timedelta(days=30)
- new_date = date_obj + delta
- print(new_date)
复制代码 如何在Pandas中进行数据的透视和堆叠操作?
Pandas中可以通过pivot_table()函数进行数据透视,也可以通过stack()函数进行数据堆叠。下面是示例代码:- 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': [1, 2, 3, 4, 5, 6, 7, 8],
- 'D': [10, 20, 30, 40, 50, 60, 70, 80]
- })
- # 进行数据透视
- result = df.pivot_table(values='D', index=['A', 'B'], columns=['C'])
- print(result)
复制代码- C 1 2 3 4 5 6 7 8
- A B
- bar one 20.0 NaN NaN NaN NaN 60.0 NaN NaN
- three NaN NaN NaN 40.0 NaN NaN NaN NaN
- two NaN 20.0 NaN NaN NaN 60.0 NaN NaN
- foo one 10.0 NaN 7.0 NaN NaN NaN 70.0 NaN
- three NaN NaN NaN NaN NaN NaN NaN 80.0
- two 50.0 30.0 NaN NaN 50.0 NaN NaN NaN
复制代码- 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': [1, 2, 3, 4, 5, 6, 7, 8],
- 'D': [10, 20, 30, 40, 50, 60, 70, 80]
- })
- # 进行数据堆叠
- stacked = df.stack()
- print(stacked)
复制代码- 0 A foo
- B one
- C 1
- D 10
- 1 A bar
- ...
- 6 C 7
- D 70
- 7 A foo
- B three
- C 8
- D 80
复制代码 如何在Pandas中进行数据的可视化?
Pandas提供了多种数据可视化方法,其中常用的是基于Matplotlib的可视化。以下是在Pandas中进行数据可视化的步骤:
- 导入Pandas和Matplotlib库:
- 读取数据并创建DataFrame对象:
- 数据进行必要的处理和清洗:
- 用DataFrame.plot()方法进行可视化:
- import pandas as pd
- import matplotlib.pyplot as plt
- # 读取数据
- data = pd.read_csv('data.csv')
- df = pd.DataFrame(data)
- # 清洗数据
- df = df.dropna()
- # 绘制柱状图
- df.plot(kind='bar', x='country', y='population')
- plt.title('Population by Country')
- plt.xlabel('Country')
- plt.ylabel('Population')
- plt.show()
- # 绘制散点图
- df.plot(kind='scatter', x='gdp_per_capita', y='life_expectancy')
- plt.title('Relationship between GDP per capita and life expectancy')
- plt.xlabel('GDP per capita')
- plt.ylabel('Life expectancy')
- plt.show()
复制代码 如何在Pandas中进行数据的筛选和排序?
在Pandas中,可以使用以下的方式对数据进行筛选和排序:
- 使用布尔索引进行数据筛选:可以通过指定列的条件来筛选符合条件的数据。例如,df[df['age'] >= 18]可以选出所有年龄大于等于 18 的数据。
- 使用 isin() 函数进行数据筛选:可以使用 isin() 函数来筛选符合条件的数据。例如,df[df['city'].isin(['Shanghai', 'Beijing'])]可以筛选出居住在上海和北京的数据。
- 使用 sort_values() 函数进行数据排序:可以使用 sort_values() 函数对数据进行排序。例如,df.sort_values(by=['age', 'salary'], ascending=[False, True])可以按照年龄降序、薪水升序的方式进行排序。
- 使用 nlargest() 和 nsmallest() 函数进行数据筛选:可以使用 nlargest() 和 nsmallest() 函数来筛选前n个或后n个最大值或最小值。例如,df.nlargest(10, 'salary')可以选出薪水前10名的员工数据。
来源:https://www.cnblogs.com/yyyyfly1/p/17460472.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
|