数据科学:Numpy、Pandas、Matplotlib学习(更新ing...)

简介: 数据科学:Numpy、Pandas、Matplotlib学习(更新ing...)

数据科学:Numpy、Pandas、Matplotlib

一、Numpy

在numpy中以np.nan表示缺失值,它是一个浮点数。

二、Pandas

1、如要选出col0在30到80之间的行中col3与col1之差为奇数的行,或者col2大于50中的行col3超过col1均值的行,可以如下写出:

c11 = df["col 0"].between(30, 80)
c12 = (df["col 3"] - df["col 1"]) % 2 ==1
c21 = df["col 2"] > 50
c22 = df["col 3"] > df["col 1"].mean()
df.loc[(c11 & c12) | (c21 & c22)]

2、分别统计每一列的缺失值比例和每一行的缺失值比例

df.isna().mean()  # 默认mean的axis参数为0,按照行方向计算列的均值。
df.isna().mean(axis=1)

如果想要统计每列包含的缺失值个数,只需把mean替换为sum即可。

如果想知道缺失的行或列具体实哪一些,可以如下操作:

df[df.isna().sum(1) >= 2]

在pandas中,删除某些包含缺失值的行或列可以通过dropna函数来实现:

df.dropna(axis=1,thresh=90)  # axis为1和0分别指删除列和行 
# thresh表示非缺失值没有达到这个数量的相应维度会被删除。

3、DataFrame.plot( )函数

使用pandas.DataFrame的plot方法绘制图像会按照数据的每一列绘制一条曲线,默认按照列columns的名称在适当的位置展示图例,比matplotlib绘制节省时间,且DataFrame格式的数据更规范,方便向量化及计算。

DataFrame.plot(x=None, y=None, kind='line', ax=None, subplots=False, 
                sharex=None, sharey=False, layout=None, figsize=None, 
                use_index=True, title=None, grid=None, legend=True, 
                style=None, logx=False, logy=False, loglog=False, 
                xticks=None, yticks=None, xlim=None, ylim=None, rot=None, 
                fontsize=None, colormap=None, position=0.5, table=False, yerr=None, 
                xerr=None, stacked=True/False, sort_columns=False, 
                secondary_y=False, mark_right=True, **kwds)

4、将数据写入到Excel的多个sheet

有时一个excel内会有多个sheet。但是将两组数据通过to_excel函数先后保存到一个excel内会发现只有后一组保存的数据,因为前一组的数据被后写入的数据覆盖了。

df1.to_excel('xxx.xlsx',sheet_name='df1')
df2.to_excel('xxx.xlsx',sheet_name='df2')

使用pd.ExcelWriter建立一个writer,然后,将df1,df2都使用to_excel(writer, sheet名),最后一次性将这些数据保存,并关闭writer就完成了

writer = pd.ExcelWriter('xxx.xlsx')
df1.to_excel(writer,sheet_name="df1")
df2.to_excel(writer,sheet_name="df2")
writer.save()
writer.close()

这样会覆盖我们原有的excel数据,如果不想覆盖,可以:

writer = pd.ExcelWriter('保存.xlsx')  # 如果不存在,会自动创建excel
df = pd.read_excel("xxx.xlsx", sheet_name=xxx)
......
df_res.to_excel(writer, sheet_name=xxx, index=False)

5、找出每行或列的最大值所在的列索引或行索引:

返回一列最大值所在行的行索引df.idxmax(),默认参数为0

若参数设置为1,则为一行最大值所在列的列索引df.idxmax(1)

(取最小值为df.idxmin()

三、Matplotlib

1、设置x轴为时间刻度

imoort pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
df = pd.read_excel("***.xlsx")
# 绘制图像
fig, ax = plt.subplots()
ax.plot(df['time'], df['*'])
# 配置x轴时间间隔
time_format = mdates.DateFormatter('%H:%M:%S')
ax.xaxis.set_major_formatter(time_format)
ax.xaxis.set_major_locator(mdates.MinuteLocator(interval=240))
# 设置刻度位置
ax.set_xticks(pd.date_range(df['time'][0], df['time'][-1], freq='4h'))
# 还可以使用ax.set_xticklabels()来设置刻度的标签
# 设置开始坐标
ax.set_xlim(df['time'][0], df['time'][-1])
# 旋转x轴标签
fig.autofmt_xdate()
# 展示图形
plt.show()
相关文章
|
25天前
|
存储 Java 数据处理
(numpy)Python做数据处理必备框架!(一):认识numpy;从概念层面开始学习ndarray数组:形状、数组转置、数值范围、矩阵...
Numpy是什么? numpy是Python中科学计算的基础包。 它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/0 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。 Numpy能做什么? numpy的部分功能如下: ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。 线性代数、随机数生成以及傅里叶变换功能。 用于集成由C、C++
226 1
|
12月前
|
数据采集 数据可视化 数据处理
Python数据科学:Pandas库入门与实践
Python数据科学:Pandas库入门与实践
|
12月前
|
数据处理 Python
在数据科学领域,Pandas和NumPy是每位数据科学家和分析师的必备工具
在数据科学领域,Pandas和NumPy是每位数据科学家和分析师的必备工具。本文通过问题解答形式,深入探讨Pandas与NumPy的高级操作技巧,如复杂数据筛选、分组聚合、数组优化及协同工作,结合实战演练,助你提升数据处理能力和工作效率。
151 5
|
12月前
|
机器学习/深度学习 数据采集 数据可视化
Python数据科学实战:从Pandas到机器学习
Python数据科学实战:从Pandas到机器学习
|
12月前
|
机器学习/深度学习 数据采集 数据挖掘
解锁 Python 数据分析新境界:Pandas 与 NumPy 高级技巧深度剖析
Pandas 和 NumPy 是 Python 中不可或缺的数据处理和分析工具。本文通过实际案例深入剖析了 Pandas 的数据清洗、NumPy 的数组运算、结合两者进行数据分析和特征工程,以及 Pandas 的时间序列处理功能。这些高级技巧能够帮助我们更高效、准确地处理和分析数据,为决策提供支持。
253 2
|
12月前
|
存储 数据采集 数据处理
效率与精准并重:掌握Pandas与NumPy高级特性,赋能数据科学项目
在数据科学领域,Pandas和NumPy是Python生态中处理数据的核心库。Pandas以其强大的DataFrame和Series结构,提供灵活的数据操作能力,特别适合数据的标签化和结构化处理。NumPy则以其高效的ndarray结构,支持快速的数值计算和线性代数运算。掌握两者的高级特性,如Pandas的groupby()和pivot_table(),以及NumPy的广播和向量化运算,能够显著提升数据处理速度和分析精度,为项目成功奠定基础。
180 2
|
12月前
|
数据采集 数据可视化 数据处理
如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`)
本文介绍了如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`),加载历史数据,计算均线和其他技术指标,实现交易逻辑,记录和可视化交易结果。示例代码展示了如何根据均线交叉和价格条件进行开仓、止损和止盈操作。实际应用时需注意数据质量、交易成本和风险管理。
524 5
|
数据采集 机器学习/深度学习 数据处理
数据科学家的秘密武器:Pandas与NumPy高级应用实战指南
【10月更文挑战第4天】在数据科学领域,Pandas和NumPy是每位数据科学家不可或缺的秘密武器。Pandas凭借其DataFrame和Series数据结构,提供高效灵活的数据处理工具;NumPy则以其强大的N维数组对象ndarray和丰富的数学函数库,成为科学计算的基石。本文通过实战示例,展示了两者如何携手助力数据科学家在数据探索中披荆斩棘。Pandas擅长数据清洗、转换和结构化操作,NumPy则专注于数值计算与矩阵运算。通过结合使用,可以实现高效的数据处理与分析,大幅提升工作效率与数据处理深度。
156 4
|
机器学习/深度学习 数据采集 算法
探索Python科学计算的边界:NumPy、Pandas与SciPy在大规模数据分析中的高级应用
【10月更文挑战第5天】随着数据科学和机器学习领域的快速发展,处理大规模数据集的能力变得至关重要。Python凭借其强大的生态系统,尤其是NumPy、Pandas和SciPy等库的支持,在这个领域占据了重要地位。本文将深入探讨这些库如何帮助科学家和工程师高效地进行数据分析,并通过实际案例来展示它们的一些高级应用。
289 0
探索Python科学计算的边界:NumPy、Pandas与SciPy在大规模数据分析中的高级应用
|
数据采集 机器学习/深度学习 数据处理
数据科学家的秘密武器:Pandas与NumPy高级应用实战指南
【7月更文挑战第14天】Pandas与NumPy在数据科学中扮演关键角色。Pandas的DataFrame和Series提供高效数据处理,如数据清洗、转换,而NumPy则以ndarray为基础进行数值计算和矩阵操作。两者结合,从数据预处理到数值分析,形成强大工具组合。示例展示了填充缺失值、类型转换、矩阵乘法、标准化等操作,体现其在实际项目中的协同效用。掌握这两者,能提升数据科学家的效能和分析深度。**
180 0

热门文章

最新文章