ITPub博客

首页 > 数据库 > 数据库开发技术 > Pandas的10个经典的高级操作

Pandas的10个经典的高级操作

原创 数据库开发技术 作者:derekwh 时间:2024-10-22 09:36:49 0 删除 编辑

Pandas 是一个功能强大的 Python 数据分析库,本文介Pandas10个经典的高级操作案例,每个案例都有详细的代码和数据,感兴趣的读者可直接复制代码运行体会这些经典案例。

案例1:使用 pivot_table 进行数据透视表操作

import pandas as pd

# 创建示例数据
data = {
    'Date': ['2023-01-01', '2023-01-01', '2023-01-02', '2023-01-02'],
    'Category': ['A', 'B', 'A', 'B'],
    'Value': [10, 20, 30, 40]
}
df = pd.DataFrame(data)

# 使用 pivot_table 创建数据透视表
pivot_df = df.pivot_table(index='Date', columns='Category', values='Value', aggfunc='sum')

pivot_df

输出:

案例2:使用 groupby 和 apply 进行分组操作并应用自定义函数

import pandas as pd

# 创建示例数据
data = {
    'Group': ['A', 'A', 'B', 'B'],
    'Value': [10, 20, 30, 40]
}
df = pd.DataFrame(data)

# 定义自定义函数
def custom_function(x):
    return x.max() - x.min()

# 使用 groupby 和 apply 进行分组操作并应用自定义函数
result = df.groupby('Group')['Value'].apply(custom_function)

result

输出:

案例3:使用 merge 进行多表合并操作

import pandas as pd

# 创建示例数据
df1 = pd.DataFrame({
    'Key': ['A', 'B', 'C'],
    'Value1': [1, 2, 3]
})

df2 = pd.DataFrame({
    'Key': ['A', 'B', 'D'],
    'Value2': [4, 5, 6]
})

# 使用 merge 进行多表合并操作
merged_df = pd.merge(df1, df2, on='Key', how='inner')

merged_df

输出:

案例4:使用 cut 进行分箱操作

import pandas as pd

# 创建示例数据
data = {'Value': [1, 7, 5, 4, 6, 8, 9, 2, 3, 10]}
df = pd.DataFrame(data)

# 使用 cut 进行分箱操作
bins = [0, 3, 6, 9, 12]
labels = ['Low', 'Medium', 'High', 'Very High']
df['Category'] = pd.cut(df['Value'], bins=bins, labels=labels)

df

输出:

案例5:使用 explode 将列表展开为行

import pandas as pd

# 创建示例数据
data = {
    'ID': [1, 2],
    'Values': [[10, 20, 30], [40, 50]]
}
df = pd.DataFrame(data)

# 使用 explode 将列表展开为行
exploded_df = df.explode('Values')

exploded_df

输出:

案例6:使用 applymap 对整个 DataFrame 应用函数

import pandas as pd

# 创建示例数据
data = {
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
}
df = pd.DataFrame(data)

# 定义自定义函数
def add_one(x):
    return x + 1

# 使用 applymap 对整个 DataFrame 应用函数
result_df = df.applymap(add_one)

print(result_df)

输出:

   A  B  C
0  2  5  8
1  3  6  9
2  4  7 10

案例7:使用 query 进行条件查询

import pandas as pd

# 创建示例数据
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'Score': [85, 90, 95]
}
df = pd.DataFrame(data)

# 使用 query 进行条件查询
filtered_df = df.query('Age > 25 and Score > 90')

filtered_df

输出:

案例8:使用 concat 进行多表拼接

import pandas as pd

# 创建示例数据
df1 = pd.DataFrame({
    'Key': ['A', 'B', 'C'],
    'Value1': [1, 2, 3]
})

df2 = pd.DataFrame({
    'Key': ['D', 'E', 'F'],
    'Value2': [4, 5, 6]
})

# 使用 concat 进行多表拼接
concatenated_df = pd.concat([df1, df2], ignore_index=True)

concatenated_df

输出:

案例9:使用 melt 将宽格式转换为长格式

import pandas as pd

# 创建示例数据
data = {
    'ID': [1, 2, 3],
    'Math': [90, 80, 70],
    'Science': [85, 75, 65]
}
df = pd.DataFrame(data)

# 使用 melt 将宽格式转换为长格式
melted_df = pd.melt(df, id_vars=['ID'], value_vars=['Math', 'Science'], var_name='Subject', value_name='Score')

melted_df

输出:

案例10:使用 crosstab 创建交叉表

import pandas as pd

# 创建示例数据
data = {
    'Gender': ['Male', 'Female', 'Female', 'Male', 'Female'],
    'Preference': ['Football', 'Basketball', 'Football', 'Basketball', 'Football']
}
df = pd.DataFrame(data)

# 使用 crosstab 创建交叉表
crosstab_df = pd.crosstab(df['Gender'], df['Preference'])

crosstab_df

输出:

以上这些案例展示了 Pandas 的常用高级操作,熟悉这些之后,可大幅提高数据处理和分析能力。


原文作者:Python学习杂记;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论
央企算法工程师,微信公众号: python数智工坊

注册时间:2021-03-14

  • 博文量
    305
  • 访问量
    162313