快速入门Python pandas:让数据变得轻松简单

Python pandas:让数据变得轻松简单的博客

在这里插入图片描述

什么是Python pandas

Python pandas是一个基于NumPy的数据处理库,它可以提供高性能、易用性以及灵活性的数据结构。Python pandas可以让我们轻松地处理和分析各种类型的数据,包括结构化、半结构化和非结构化数据。

Python pandas主要有两个数据结构:Series和DataFrame。

  • Series是一种一维的数据结构,类似于Python中的列表或数组,每个元素可以有自己的标签。
  • DataFrame是一种二维的数据结构,类似于SQL中的表格或Excel中的电子表格,每个列可以有不同的数据类型。

Python pandas的主要特点

  1. 数据清洗和转换:Python pandas提供了丰富的方法和函数,用于数据清洗和转换,包括处理缺失数据、删除重复数据、格式化数据、合并和拼接数据、对数据进行分组和聚合等。
  2. 数据可视化:Python pandas可以与其他数据可视化库(如Matplotlib、Seaborn和Plotly)结合使用,提供了简单易用的数据可视化方法,可以快速绘制各种基本和高级图表。
  3. 数据导入和导出:Python pandas支持导入和导出各种数据格式,包括CSV、Excel、SQL、JSON、HTML等,方便快速地进行数据交换和共享。
  4. 高效处理大型数据集:Python pandas使用高效的算法和数据结构,能够快速处理大型数据集,并且具有良好的扩展性和可定制性。
  5. 与其他Python库的兼容性:Python pandas可以与其他Python库(如NumPy、SciPy、Scikit-learn等)结合使用,提供了更加完整的数据分析和机器学习工具集。

安装Python pandas

要使用Python pandas,首先需要安装它。你可以通过以下命令在命令行中安装:

pip install pandas

创建Series和DataFrame

在这里插入图片描述

现在,我们可以开始创建Series和DataFrame了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lxT469pk-1678097952934)(null)]

创建Series

要创建一个Series,我们可以使用以下语法:

import pandas as pd

my_series = pd.Series(data, index)

其中,data是我们要存储在Series中的数据,可以是列表、数组或字典等;index是可选的,表示我们要为Series中的每个元素设置的索引。

例如,以下代码创建了一个简单的Series:

import pandas as pd

my_data = [10, 20, 30, 40, 50]
my_series = pd.Series(my_data)

print(my_series)

输出:

goCopy code
0    10
1    20
2    30
3    40
4    50
dtype: int64

创建DataFrame

要创建一个DataFrame,我们可以使用以下语法:

import pandas as pd

my_dataframe = pd.DataFrame(data, columns)

其中,data是我们要存储在DataFrame中的数据,可以是列表、数组或字典等;columns是DataFrame中每个列的名称。

例如,以下代码创建了一个简单的DataFrame:

import pandas as pd

my_data = pd.DataFrame(
    {
        "Name": [
            "Braund, Mr. Owen Harris",
            "Allen, Mr. William Henry",
            "Bonnell, Miss. Elizabeth",
        ],
        "Age": [22, 35, 58],
        "Sex": ["male", "male", "female"],
    }
)
my_dataframe = pd.DataFrame(my_data)

print(my_dataframe)

输出:

                       Name  Age     Sex
0   Braund, Mr. Owen Harris   22    male
1  Allen, Mr. William Henry   35    male
2  Bonnell, Miss. Elizabeth   58  female

../../_images/01_table_spreadsheet.png

pandas DataFrame 索引和选择数据

  1. 使用标签索引
    • 使用loc方法,通过标签选择Series或DataFrame中的数据
    • 使用iloc方法,通过整数索引选择Series或DataFrame中的数据
  2. 使用布尔索引
    • 使用布尔运算符(如>,<,==等)创建布尔条件
    • 使用布尔条件对Series或DataFrame进行索引,获取满足条件的数据
  3. 使用位置索引
    • 使用iat方法,通过整数位置索引选择Series或DataFrame中的数据
    • 使用at方法,通过标签位置索引选择Series或DataFrame中的数据
  4. 使用多重索引
    • 使用set_index方法,创建多重索引
    • 使用MultiIndex对象,对多重索引进行操作

下面是一些示例代码,说明如何使用这些方法来索引和选择数据:

import pandas as pd

# 创建一个DataFrame
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie', 'David'],
                   'age': [25, 30, 35, 40],
                   'city': ['New York', 'Los Angeles', 'Chicago', 'Houston']})

# 使用loc方法,通过标签选择数据
print(df.loc[1])           # 选择第2行数据
print(df.loc[1:3, 'name':'city'])  # 选择第2~4行、name~city列的数据

# 使用布尔索引,选择年龄大于30岁的数据
print(df[df['age'] > 30])

# 使用iat方法,通过整数位置索引选择数据
print(df.iat[1, 2])         # 选择第2行、第3列的数据

# 使用set_index方法,创建多重索引
df_multi = df.set_index(['city', 'name'])
print(df_multi.loc[('New York', 'Alice')])  # 选择city为'New York',name为'Alice'的数据

pandas 数据清洗

Python pandas提供了许多方法和工具来清洗数据,以确保数据的准确性和一致性。下面是一些常见的数据清洗方法:

  1. 缺失值处理:
    • 使用dropna()方法删除包含缺失值的行或列
    • 使用fillna()方法填充缺失值
    • 使用interpolate()方法插值填充缺失值
  2. 重复值处理:
    • 使用drop_duplicates()方法删除重复的行
    • 使用duplicated()方法查找重复的行
  3. 数据类型转换:
    • 使用astype()方法将一种数据类型转换为另一种数据类型
    • 使用to_datetime()方法将字符串转换为日期时间格式

下面是一个数据清洗的示例代码:

import pandas as pd

# 创建一个包含缺失值和重复值的DataFrame
data = {'name': ['Alice', 'Bob', 'Charlie', 'David', 'Bob'],
        'age': [25, 30, None, 40, 30],
        'gender': ['F', 'M', 'M', 'M', 'M']}
df = pd.DataFrame(data)

# 处理缺失值
df.dropna(inplace=True)       # 删除包含缺失值的行或列
df.fillna(method='ffill', inplace=True)   # 前向填充缺失值
df.interpolate(method='linear', inplace=True)   # 插值填充缺失值

# 处理重复值
df.drop_duplicates(inplace=True)   # 删除重复的行
print(df.duplicated())   # 查找重复的行

# 数据类型转换
df['age'] = df['age'].astype(int)  # 将age列的数据类型转换为整数类型
df['date'] = pd.to_datetime('2020-01-01')   # 将字符串转换为日期时间格式,并赋值给新的date列

pandas 数据转换

  1. 数据透视表(Pivot Table):将数据按照不同的列和行组合,计算并展示汇总值。数据透视表可以使用pivot_table()方法来创建。
  2. 数据合并(Merge):将两个或多个DataFrame合并为一个,按照指定的键(key)来连接。数据合并可以使用merge()方法来实现。
  3. 数据变形(Reshaping):将DataFrame中的数据从一种形式转换为另一种形式,例如从长格式(Long Format)转换为宽格式(Wide Format),或者从宽格式转换为长格式。数据变形可以使用melt()方法和pivot()方法来实现。

下面是一个数据转换的示例代码:

import pandas as pd

# 创建两个DataFrame
data1 = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
         'score': [90, 80, 70, 85]}
df1 = pd.DataFrame(data1)

data2 = {'name': ['Bob', 'Charlie', 'David', 'Emma'],
         'age': [30, 35, 40, 25]}
df2 = pd.DataFrame(data2)

# 数据透视表
df_pivot = pd.pivot_table(df1, values='score', index=['name'], aggfunc=sum)
print(df_pivot)

# 数据合并
df_merge = pd.merge(df1, df2, on='name')
print(df_merge)

# 数据变形
df_melt = pd.melt(df1, id_vars=['name'], value_vars=['score'], var_name='subject', value_name='score')
print(df_melt)

df_wide = pd.pivot_table(df_melt, values='score', index=['name'], columns=['subject'])
print(df_wide)

结语

Python pandas是一种功能强大、灵活且易于使用的数据分析和处理工具,适用于各种应用场景和数据类型。
关注我技术公众号。
Java移动技术栈

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值