博客
关于我
Pandas 的 DataFrame 详解-ChatGPT4o作答
阅读量:793 次
发布时间:2023-02-26

本文共 2824 字,大约阅读时间需要 9 分钟。

Pandas 的 DataFrame 详解

Pandas 是 Python 中用于数据分析和数据处理的强大库,而 DataFrame 是 Pandas 中最核心的数据结构之一。DataFrame 可以看作是一种二维表格,类似于 Excel 表格、数据库中的表或 R 语言的数据框。

1. DataFrame 的定义

DataFrame 是一种二维数据结构,由行索引(index)和列索引(columns)组成,数据以表格的形式存储。行代表数据的观察记录,列代表不同的特征或字段,索引用于唯一标识行和列。

DataFrame 的特点:

  • 每列可以包含不同的数据类型(如 int、float、string)。
  • 支持从多个数据源构建,如字典、数组、CSV 文件、数据库等。
  • 提供强大的数据筛选、转换和分析功能。

2. 创建 DataFrame

2.1 从字典创建 DataFrame

import pandas as pddata = {    'Name': ['Alice', 'Bob', 'Charlie'],    'Age': [25, 30, 35],    'City': ['New York', 'Los Angeles', 'Chicago']}df = pd.DataFrame(data)print(df)

输出:

Name  Age         City0    Alice   25     New York1      Bob   30  Los Angeles2  Charlie   35      Chicago

2.2 从列表创建 DataFrame

data = [    ['Alice', 25, 'New York'],    ['Bob', 30, 'Los Angeles'],    ['Charlie', 35, 'Chicago']]columns = ['Name', 'Age', 'City']df = pd.DataFrame(data, columns=columns)print(df)

2.3 从 NumPy 数组创建 DataFrame

import numpy as npdata = np.array([[1, 2, 3], [4, 5, 6]])df = pd.DataFrame(data, columns=['A', 'B', 'C'], index=['Row1', 'Row2'])print(df)

输出:

A  B  CRow1   1  2  3Row2   4  5  6

2.4 从 CSV 文件读取数据

df = pd.read_csv('data.csv')print(df.head())

3. DataFrame 的基本属性

常用属性:

  • df.shape:返回 DataFrame 的行数和列数。
  • df.columns:返回所有列名。
  • df.index:返回行索引。
  • df.dtypes:返回每列的数据类型。
  • df.info():显示 DataFrame 的基本信息。
  • df.values:将 DataFrame 转换为 NumPy 数组。

示例:

print(df.shape)      # 输出行数和列数print(df.columns)    # 输出列名print(df.index)      # 输出索引print(df.dtypes)     # 输出列的数据类型print(df.info())     # 显示详细信息print(df.values)     # 返回数据的数组形式

4. DataFrame 的数据访问与筛选

4.1 按列访问

print(df['Name'])print(df[['Name', 'Age']])

4.2 按行访问

  • 使用 loc 按标签访问行。
  • 使用 iloc 按位置访问行。
print(df.loc[0])  # 访问第 1 行print(df.iloc[0]) # 访问第 1 行

4.3 筛选数据

  • 条件筛选
filtered_df = df[df['Age'] > 30]print(filtered_df)
  • 多个条件筛选
filtered_df = df[(df['Age'] > 25) & (df['City'] == 'New York')]print(filtered_df)

5. DataFrame 的常用操作

5.1 添加和删除列

df['Salary'] = [5000, 6000, 7000]df = df.drop('Salary', axis=1)  # axis=1 表示列print(df)

5.2 修改数据

df.loc[0, 'Age'] = 26df['Age'] = df['Age'] + 1

5.3 排序

df_sorted = df.sort_values(by='Age')df_sorted = df.sort_values(by='Age', ascending=False)print(df_sorted)

5.4 数据统计

print(df.describe())print(df['City'].unique())grouped = df.groupby('City')['Age'].mean()print(grouped)

5.5 处理缺失值

print(df.isnull())df.fillna(value=0, inplace=True)df.dropna(inplace=True)

6. 数据可视化与 DataFrame 结合

Pandas 可以与 Matplotlib、Seaborn 等库结合进行可视化。

示例:

import matplotlib.pyplot as plt# 柱状图df['Age'].plot(kind='bar')plt.show()# 折线图df['Age'].plot(kind='line')plt.show()

7. DataFrame 的高级操作

7.1 数据合并

  • 横向合并
pd.concat([df1, df2], axis=1)
  • 纵向合并
pd.concat([df1, df2], axis=0)
  • 按键合并
pd.merge(df1, df2, on='ID')

7.2 数据透视表

pivot_table = df.pivot_table(values='Age', index='City', aggfunc='mean')print(pivot_table)

总结

Pandas 的 DataFrame 是数据分析的核心工具,它提供了强大的数据结构和操作方法,适用于数据清洗、处理、统计分析和可视化。掌握 DataFrame 的操作,是成为数据分析高手的关键!

转载地址:http://asvfk.baihongyu.com/

你可能感兴趣的文章