问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

提升效率!10个Pandas DataFrame操作技巧

创作时间:
作者:
@小白创作中心

提升效率!10个Pandas DataFrame操作技巧

引用
5
来源
1.
https://thecleverprogrammer.com/2024/02/27/advanced-pandas-functions-for-data-analysis/
2.
https://www.analyticsvidhya.com/blog/2024/02/how-to-make-pandas-faster/
3.
https://www.nobledesktop.com/learn/python/data-cleaning-with-pandas-best-practices
4.
https://www.analyticsvidhya.com/blog/2021/06/style-your-pandas-dataframe-and-make-it-stunning/
5.
https://isamatov.com/advanced-pandas-dataframe-manipulation/

在Python的数据分析领域,Pandas DataFrame是使用最广泛的数据结构之一。它不仅提供了强大的数据处理能力,还支持各种高级操作。本文将为你介绍10个实用的Pandas DataFrame操作技巧,帮助你提升数据分析效率。

01

高级函数:让数据处理更便捷

GroupBy:数据分组与聚合

GroupBy是Pandas中非常强大的功能,可以让你根据一个或多个列的值对数据进行分组,并对每个组执行聚合、转换或过滤操作。

import pandas as pd

# 样本数据
df = pd.DataFrame({
    '城市': ['北京', '上海', '北京', '上海'],
    '销量': [100, 200, 150, 300],
    '价格': [10.0, 20.0, 15.0, 30.0]
})

# 按城市分组,计算总销量
grouped = df.groupby('城市').sum()
print(grouped)

输出结果:

         销量   价格
城市                 
北京     250  25.0
上海     500  50.0

Pivot Tables:数据透视表

数据透视表是数据分析中常用的数据汇总工具。Pandas的pivot_table函数可以让你快速对数据进行排序、计数和汇总。

import numpy as np

# 创建数据透视表
pivot = pd.pivot_table(df, values='价格', index=['城市'], aggfunc=np.mean)
print(pivot)

输出结果:

        价格
城市        
北京   12.5
上海   25.0

Multi-Indexing:多级索引

Pandas支持多级索引,可以让你在低维数据结构中存储和操作任意维度的数据。

# 创建多级索引
index = pd.MultiIndex.from_tuples([
    ('北京', '第一店'), ('北京', '第二店'),
    ('上海', '第一店'), ('上海', '第二店')
], names=['城市', '店铺'])

df_multi = pd.DataFrame(np.random.randn(4, 2), index=index, columns=['销量', '价格'])
print(df_multi)

输出结果:

                     销量       价格
城市  店铺                      
北京  第一店   -0.329643  0.689521
      第二店    0.467012  0.241962
上海  第一店   -0.571860 -0.498537
      第二店    0.092908  0.231604
02

性能优化:让数据处理更快

使用向量化操作

向量化操作可以让你对整个数组或列执行计算,而不是逐个元素迭代。这可以显著减少执行时间并提高性能。

未优化代码:

import pandas as pd
import numpy as np

# 假设df是一个包含'value'列的DataFrame
def square_elements(df):
    for index, row in df.iterrows():
        df.at[index, 'value'] = row['value'] ** 2
    return df

优化后代码:

df['value'] = df['value'] ** 2

利用Pandas内置函数

Pandas提供了许多经过性能优化的内置函数。例如,计算列的平均值时,可以直接使用mean()函数,而不是自定义函数。

# 使用内置函数
average = df['销量'].mean()
print(average)

选择合适的数据类型

Pandas的默认数据类型可能会占用大量内存,影响性能。通过选择合适的数据类型,可以显著提高性能。

# 将整数列转换为更小的数据类型
df['销量'] = df['销量'].astype('int16')

优化apply函数的使用

apply函数虽然强大,但使用不当会影响性能。尽量避免在大数据集上使用复杂的lambda函数。

# 不推荐的用法
df['新列'] = df['销量'].apply(lambda x: x * 2 if x > 100 else x)

# 推荐的用法
df['新列'] = df['销量'] * 2
03

最佳实践:让数据处理更可靠

处理缺失值

在数据清洗过程中,处理缺失值是非常重要的一步。Pandas提供了多种处理缺失值的方法。

# 删除包含缺失值的行
df = df.dropna()

# 填充缺失值
df = df.fillna(0)

过滤重复数据

重复数据会影响分析结果的准确性。使用drop_duplicates函数可以轻松去除重复行。

df = df.drop_duplicates()

数据验证

在数据处理过程中,确保数据的完整性和准确性至关重要。可以通过自定义函数来验证数据。

def validate_data(row):
    if row['销量'] < 0:
        return False
    return True

df = df[df.apply(validate_data, axis=1)]

通过掌握这些高级功能和最佳实践,你可以更高效地使用Pandas DataFrame进行数据分析。无论是处理大型数据集还是执行复杂的数据操作,这些技巧都能帮助你提升工作效率。现在就开始实践这些技巧吧,让你的数据分析工作事半功倍!

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号