Pandas DataFrame结构对象常用的属性和方法

Pandas DataFrame是一个二维表结构,包含了行和列的标签,每一列可以有不同的数据类型。

以下是Pandas DataFrame结构对象常用的属性和方法:

DataFrame结构对象属性

DataFrame对象常用的属性有:

  • shape:返回DataFrame的形状(行数、列数)
  • index:返回DataFrame的行索引
  • columns:返回DataFrame的列索引
  • dtypes:返回DataFrame每列数据类型
  • values:返回DataFrame的值,以二维numpy数组形式表示

示例代码:

import pandas as pd
import numpy as np

# 创建DataFrame
data = {'name': ['Tom', 'Jack', 'Mary', 'Jane'],
        'age': [20, 21, 19, 20],
        'score': [80, 90, 85, 92]}
df = pd.DataFrame(data)

# 属性
print("DataFrame的形状为:", df.shape)
print("DataFrame的行索引为:", df.index)
print("DataFrame的列索引为:", df.columns)
print("DataFrame的每列数据类型为:", df.dtypes)
print("DataFrame的值为:", df.values)

输出结果为:

DataFrame的形状为: (4, 3)
DataFrame的行索引为: RangeIndex(start=0, stop=4, step=1)
DataFrame的列索引为: Index(['name', 'age', 'score'], dtype='object')
DataFrame的每列数据类型为: name     object
age       int64
score     int64
dtype: object
DataFrame的值为: [['Tom' 20 80]
 ['Jack' 21 90]
 ['Mary' 19 85]
 ['Jane' 20 92]]

DataFrame结构对象方法

DataFrame结构对象常用的方法有:

  • head():返回DataFrame前几行,默认返回前5行
  • tail():返回DataFrame后几行,默认返回后5行
  • info():返回DataFrame每列的数据类型、非空值个数、内存占用等信息
  • describe():返回DataFrame每列的统计信息,包括计数、均值、标准差、最小值、25%、50%、75%和最大值
  • sort_values():按指定列的值对DataFrame进行排序
  • dropna():删除缺失值
  • fillna():填充缺失值
  • groupby():按指定列分组
  • pivot_table():数据透视表
  • merge():按照指定列将两个DataFrame进行合并
  • join():按照索引将两个DataFrame进行合并

示例代码:

import pandas as pd
import numpy as np

# 创建DataFrame
data = {'name': ['Tom', 'Jack', 'Mary', 'Jane'],
        'age': [20, 21, 19, 20],
        'score': [80, 90, 85, 92]}
df = pd.DataFrame(data)

# 方法
print("DataFrame前2行为:", df.head(2))
print("DataFrame后2行为:", df.tail(2))
print("DataFrame的信息为:",df.info())
print("DataFrame的统计信息为:",df.describe())

print("按分数对DataFrame进行排序:",df.sort_values(by='score', ascending=False))

print("删除缺失值:",df.dropna())

print("填充缺失值为0:",df.fillna(value=0))

print("按照年龄进行分组:",df.groupby('age').sum())

print("数据透视表:",pd.pivot_table(df, values='score', index=['name'], columns=['age']))

df1 = pd.DataFrame({'name': ['Tom', 'Jack', 'Mary', 'Jane'], 'gender': ['M', 'M', 'F', 'F']})

print("合并两个DataFrame:",pd.merge(df, df1, on='name'))

df2 = pd.DataFrame({'gender': ['M', 'M', 'F', 'F'], 'income': [2000, 3000, 2500, 2800]})

print("按索引合并两个DataFrame:",df.join(df2))

输出内容为:

DataFrame前2行为:    name  age  score
0   Tom   20     80
1  Jack   21     90
DataFrame后2行为:    name  age  score
2  Mary   19     85
3  Jane   20     92
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4 entries, 0 to 3
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype 
---  ------  --------------  ----- 
 0   name    4 non-null      object
 1   age     4 non-null      int64 
 2   score   4 non-null      int64 
dtypes: int64(2), object(1)
memory usage: 224.0+ bytes
DataFrame的信息为: None
DataFrame的统计信息为:              age      score
count   4.000000   4.000000
mean   20.000000  86.750000
std     0.816497   5.377422
min    19.000000  80.000000
25%    19.750000  83.750000
50%    20.000000  87.500000
75%    20.250000  90.500000
max    21.000000  92.000000
按分数对DataFrame进行排序:    name  age  score
3  Jane   20     92
1  Jack   21     90
2  Mary   19     85
0   Tom   20     80
删除缺失值:    name  age  score
0   Tom   20     80
1  Jack   21     90
2  Mary   19     85
3  Jane   20     92
填充缺失值为0:    name  age  score
0   Tom   20     80
1  Jack   21     90
2  Mary   19     85
3  Jane   20     92
按照年龄进行分组:      score
age       
19      85
20     172
21      90
数据透视表: age     19    20    21
name                  
Jack   NaN   NaN  90.0
Jane   NaN  92.0   NaN
Mary  85.0   NaN   NaN
Tom    NaN  80.0   NaN
合并两个DataFrame:    name  age  score gender
0   Tom   20     80      M
1  Jack   21     90      M
2  Mary   19     85      F
3  Jane   20     92      F
按索引合并两个DataFrame:    name  age  score gender  income
0   Tom   20     80      M    2000
1  Jack   21     90      M    3000
2  Mary   19     85      F    2500
3  Jane   20     92      F    2800

本文链接:https://my.lmcjl.com/post/19950.html

展开阅读全文

4 评论

留下您的评论.