本文共 2824 字,大约阅读时间需要 9 分钟。
Pandas 的 DataFrame 详解
Pandas 是 Python 中用于数据分析和数据处理的强大库,而 DataFrame 是 Pandas 中最核心的数据结构之一。DataFrame 可以看作是一种二维表格,类似于 Excel 表格、数据库中的表或 R 语言的数据框。
DataFrame 是一种二维数据结构,由行索引(index)和列索引(columns)组成,数据以表格的形式存储。行代表数据的观察记录,列代表不同的特征或字段,索引用于唯一标识行和列。
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
data = [ ['Alice', 25, 'New York'], ['Bob', 30, 'Los Angeles'], ['Charlie', 35, 'Chicago']]columns = ['Name', 'Age', 'City']df = pd.DataFrame(data, columns=columns)print(df)
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
df = pd.read_csv('data.csv')print(df.head()) 常用属性:
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) # 返回数据的数组形式
print(df['Name'])print(df[['Name', 'Age']])
loc 按标签访问行。iloc 按位置访问行。print(df.loc[0]) # 访问第 1 行print(df.iloc[0]) # 访问第 1 行
filtered_df = df[df['Age'] > 30]print(filtered_df)
filtered_df = df[(df['Age'] > 25) & (df['City'] == 'New York')]print(filtered_df)
df['Salary'] = [5000, 6000, 7000]df = df.drop('Salary', axis=1) # axis=1 表示列print(df) df.loc[0, 'Age'] = 26df['Age'] = df['Age'] + 1
df_sorted = df.sort_values(by='Age')df_sorted = df.sort_values(by='Age', ascending=False)print(df_sorted)
print(df.describe())print(df['City'].unique())grouped = df.groupby('City')['Age'].mean()print(grouped) print(df.isnull())df.fillna(value=0, inplace=True)df.dropna(inplace=True)
Pandas 可以与 Matplotlib、Seaborn 等库结合进行可视化。
示例:
import matplotlib.pyplot as plt# 柱状图df['Age'].plot(kind='bar')plt.show()# 折线图df['Age'].plot(kind='line')plt.show()
pd.concat([df1, df2], axis=1)
pd.concat([df1, df2], axis=0)
pd.merge(df1, df2, on='ID')
pivot_table = df.pivot_table(values='Age', index='City', aggfunc='mean')print(pivot_table)
Pandas 的 DataFrame 是数据分析的核心工具,它提供了强大的数据结构和操作方法,适用于数据清洗、处理、统计分析和可视化。掌握 DataFrame 的操作,是成为数据分析高手的关键!
转载地址:http://asvfk.baihongyu.com/