python 运用pandas 库处理excel 表格数据

python 运用pandas 库处理excel 表格数据_第1张图片

文章目录

  • 读取文件
  • 查看数据
  • 数据选择
  • 数据筛选
  • 创建新列
  • 计算并总结数据
  • 分组统计

读取文件

Pandas 是一个强大的数据分析库,它提供了丰富的数据结构和数据分析工具,其中之一是用于读取不同格式文件的 read_* 函数系列。以下是一个简单介绍如何使用 Pandas 读取常见文件格式的示例:

  1. 读取 Excel 文件:

    import pandas as pd
    
    # 读取 Excel 文件的第一个表格
    df = pd.read_excel('文件路径.xlsx')
    
    # 打印数据框的前几行
    print(df.head())
    

查看数据

在 Pandas 中,可以使用多种方式来查看 Excel 文件中的 DataFrame 数据以及数据类型。以下是一些常见的方法:

  1. 查看前几行数据(或者后几行):

    使用 head() 函数可以查看 DataFrame 的前几行数据,默认是前五行。你可以通过传递参数来指定显示的行数。

    import pandas as pd
    
    # 读取 Excel 文件
    df = pd.read_excel('文件路径.xlsx')
    
    # 查看前五行数据
    print(df.head(5))
    # 查看后5行
    print(df.tail(5))
    
    
  2. 查看数据类型:

    使用 dtypes 属性可以查看 DataFrame 中每一列的数据类型。

    # 查看数据类型
    print(df.dtypes)
    
  3. 查看统计摘要:

    使用 describe() 函数可以生成关于数值列的统计摘要,包括均值、标准差、最小值、25%,50%,75% 以及最大值。

    # 查看统计摘要
    print(df.describe())
    
  4. 查看单一列的唯一值:

    如果想了解某一列的唯一值,可以使用 unique() 函数。

    # 查看某一列的唯一值
    unique_values = df['列名'].unique()
    print(unique_values)
    
  5. 查看整个 DataFrame 的信息:

    使用 info() 函数可以查看 DataFrame 的整体信息,包括每列的非空值数量、数据类型等。

    # 查看整个 DataFrame 的信息
    print(df.info())
    

这些方法可以帮助你快速了解 Excel 文件中的数据,其结构以及数据类型。根据需要,选择适当的方法来查看和理解数据。

数据选择

当选择 DataFrame 中的数据时,下面是每个用法的简单例子:

  1. 选择列:

    # 创建一个简单的 DataFrame
    import pandas as pd
    
    data = {'Name': ['Alice', 'Bob', 'Charlie'],
            'Age': [25, 30, 35],
            'City': ['New York', 'San Francisco', 'Los Angeles']}
    
    df = pd.DataFrame(data)
    
    # 通过列名选择单列
    single_column = df['Name']
    
  2. 选择多列:

    # 选择多列
    multiple_columns = df[['Name', 'Age']]
    
  3. 选择行:

    # 通过标签索引选择单行
    single_row_by_label = df.loc[0]
    
    # 通过整数索引选择单行
    single_row_by_integer = df.iloc[0]
    
  4. 选择特定条件的行:

    # 选择满足条件的行
    selected_rows = df[df['Age'] > 25]
    
  5. 组合选择:

    # 组合条件选择
    selected_data = df[(df['Age'] > 25) & (df['City'] == 'San Francisco')]
    
  6. 选择特定位置的元素:

    # 通过标签索引选择元素
    element_by_label = df.at[0, 'Name']
    
    # 通过整数索引选择元素
    element_by_integer = df.iat[0, 0]
    

这些例子演示了如何使用 Pandas 对 DataFrame 进行简单的数据选择。你可以根据具体的数据和需求,灵活运用这些方法。

数据筛选

在 Pandas 中,数据筛选是通过选择满足特定条件的行或列来进行的。以下是一些常见的数据筛选用法:

  1. 根据条件筛选行:

    通过设定条件来选择 DataFrame 中满足条件的行。

    # 创建一个简单的 DataFrame
    import pandas as pd
    
    data = {'Name': ['Alice', 'Bob', 'Charlie'],
            'Age': [25, 30, 35],
            'City': ['New York', 'San Francisco', 'Los Angeles']}
    
    df = pd.DataFrame(data)
    
    # 选择年龄大于 30 的行
    filtered_rows = df[df['Age'] > 30]
    
  2. 使用 isin 方法筛选行:

    使用 isin 方法可以选择某一列中包含特定值的行。

    # 选择居住在指定城市的行
    selected_cities = df[df['City'].isin(['New York', 'Los Angeles'])]
    
  3. 根据多个条件组合筛选行:

    使用逻辑运算符 &(与)、|(或)、~(非)等来组合多个条件。

    # 选择年龄大于 25 且居住在 'San Francisco' 的行
    selected_data = df[(df['Age'] > 25) & (df['City'] == 'San Francisco')]
    
  4. 根据字符串条件筛选行:

    使用字符串方法,如 str.contains,可以在文本列中筛选包含特定字符串的行。

    # 选择包含 'Bob' 的行
    selected_rows = df[df['Name'].str.contains('Bob')]
    
  5. 根据索引标签筛选行:

    使用 loc 方法根据索引标签筛选行。

    # 设置 'Name' 列为索引列
    df.set_index('Name', inplace=True)
    
    # 选择 'Bob' 的行
    selected_row = df.loc['Bob']
    
  6. 根据列值筛选列:

    使用列名来选择特定的列。

    # 选择 'Name' 和 'Age' 列
    selected_columns = df[['Name', 'Age']]
    

这些例子展示了在 Pandas 中进行数据筛选的常见用法。你可以根据实际情况和需求,使用这些方法进行灵活的数据筛选。

创建新列

在 Pandas 中,创建新列可以通过给 DataFrame 分配新的列名,并使用已有列的数据或进行一些计算得到新的列值。以下是一些常见的创建新列的方法:

  1. 使用已有列进行计算创建新列:

    # 创建一个简单的 DataFrame
    import pandas as pd
    
    data = {'Name': ['Alice', 'Bob', 'Charlie'],
            'Age': [25, 30, 35],
            'City': ['New York', 'San Francisco', 'Los Angeles']}
    
    df = pd.DataFrame(data)
    
    # 使用已有列 'Age' 创建一个新列 'Age_in_2_years'
    df['Age_in_2_years'] = df['Age'] + 2
    
  2. 使用函数进行计算创建新列:

    可以使用函数对 DataFrame 的一列进行操作,并将结果存储在新列中。

    # 创建一个函数,用于计算字符串长度
    def calculate_name_length(name):
        return len(name)
    
    # 使用函数创建新列 'Name_Length'
    df['Name_Length'] = df['Name'].apply(calculate_name_length)
    
  3. 使用条件语句创建新列:

    可以使用条件语句根据某一列的值创建新的列。

    # 使用条件语句创建新列 'Is_Adult'
    df['Is_Adult'] = df['Age'] >= 18
    
  4. 根据多列创建新列:

    使用多个已有列的数据进行计算,并创建新的列。

    # 使用 'Age' 和 'Name_Length' 列创建新列 'Combined_Column'
    df['Combined_Column'] = df['Age'] * df['Name_Length']
    
  5. 使用 assign 方法创建新列:

    使用 assign 方法可以链式操作,一次性创建多个新列。

    # 使用 assign 方法创建多个新列
    df = df.assign(Double_Age=df['Age'] * 2, Triple_Age=df['Age'] * 3)
    

这些方法提供了多种灵活的方式来创建新列,根据你的需求选择适当的方法。创建新列时,考虑数据的来源、计算逻辑以及新列的名称。

计算并总结数据

在 Pandas 中,可以使用一些内建的函数来计算总结数据,包括均值、中位数、标准差等。以下是一些常见的计算总结数据的方法:

  1. 计算列的均值:

    # 计算 'Age' 列的均值
    mean_age = df['Age'].mean()
    
  2. 计算列的中位数:

    # 计算 'Age' 列的中位数
    median_age = df['Age'].median()
    
  3. 计算列的标准差:

    # 计算 'Age' 列的标准差
    std_dev_age = df['Age'].std()
    
  4. 计算列的总和:

    # 计算 'Age' 列的总和
    sum_age = df['Age'].sum()
    
  5. 计算列的最小值和最大值:

    # 计算 'Age' 列的最小值和最大值
    min_age = df['Age'].min()
    max_age = df['Age'].max()
    
  6. 使用 describe 方法获取统计摘要:

    # 使用 describe 方法获取数值列的统计摘要
    summary_stats = df.describe()
    
  7. 计算唯一值的数量:

    # 计算 'City' 列中唯一值的数量
    unique_cities_count = df['City'].nunique()
    
  8. 计算唯一值及其出现次数:

    # 计算 'City' 列中每个唯一值的出现次数
    city_counts = df['City'].value_counts()
    

这些方法提供了对数据集进行各种总结统计的途径。具体选择哪种方法取决于你关心的统计信息。可以根据实际需求选择适当的函数进行计算。

分组统计

在 Pandas 中,分组统计是一种强大的数据分析工具,允许你根据某一列或多列的值对数据进行分组,然后对每个组进行统计。以下是一些常见的分组统计的方法:

  1. 按单一列分组并计算统计量:

    # 创建一个简单的 DataFrame
    import pandas as pd
    
    data = {'Category': ['A', 'B', 'A', 'B', 'A', 'B'],
            'Value': [10, 20, 30, 15, 25, 18]}
    
    df = pd.DataFrame(data)
    
    # 按 'Category' 列分组,并计算每组的均值
    group_means = df.groupby('Category')['Value'].mean()
    
  2. 按多列分组并计算统计量:

    # 创建一个带有多列的 DataFrame
    data = {'Category': ['A', 'B', 'A', 'B', 'A', 'B'],
            'City': ['X', 'Y', 'X', 'Y', 'X', 'Y'],
            'Value': [10, 20, 30, 15, 25, 18]}
    
    df = pd.DataFrame(data)
    
    # 按 'Category' 和 'City' 列分组,并计算每组的均值
    group_means = df.groupby(['Category', 'City'])['Value'].mean()
    
  3. 同时计算多个统计量:

    # 同时计算均值和标准差
    group_stats = df.groupby('Category')['Value'].agg(['mean', 'std'])
    
  4. 使用 agg 方法应用多个函数:

    # 使用 agg 方法应用不同的统计函数
    custom_stats = df.groupby('Category')['Value'].agg(['sum', 'mean', 'count'])
    
  5. 使用 apply 方法应用自定义函数:

    # 使用 apply 方法应用自定义函数
    def custom_function(group):
        return group.max() - group.min()
    
    custom_result = df.groupby('Category')['Value'].apply(custom_function)
    
  6. 透视表(Pivot Table):

    # 使用透视表计算 'City' 列和 'Category' 列的均值
    pivot_table = df.pivot_table(values='Value', index='Category', columns='City', aggfunc='mean')
    

这些方法提供了丰富的分组统计功能,可以根据不同的需求进行定制化。分组统计对于理解数据的分布、进行对比分析等方面都非常有用。

你可能感兴趣的:(python,python,爬虫,python,pandas,excel)