Pandas的10个经典的高级操作

文摘   2024-10-22 09:37   湖北  

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': [10203040]
}
df = pd.DataFrame(data)

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

pivot_df

输出:

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

import pandas as pd

# 创建示例数据
data = {
    'Group': ['A''A''B''B'],
    'Value': [10203040]
}
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': [123]
})

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

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

merged_df

输出:

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

import pandas as pd

# 创建示例数据
data = {'Value': [17546892310]}
df = pd.DataFrame(data)

# 使用 cut 进行分箱操作
bins = [036912]
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': [12],
    'Values': [[102030], [4050]]
}
df = pd.DataFrame(data)

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

exploded_df

输出:

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

import pandas as pd

# 创建示例数据
data = {
    'A': [123],
    'B': [456],
    'C': [789]
}
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': [253035],
    'Score': [859095]
}
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': [123]
})

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

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

concatenated_df

输出:

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

import pandas as pd

# 创建示例数据
data = {
    'ID': [123],
    'Math': [908070],
    'Science': [857565]
}
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学习杂记
数据分析与挖掘、运筹优化、机器学习、AI 、数据可视化等。
 最新文章