Pandas中DataFrame基本函数整理(小结)

  • Post category:Python

Pandas中DataFrame基本函数整理(小结)

DataFrame是Pandas中最常用的数据结构之一,用于处理二维数据。掌握DataFrame的基本函数对于数据的处理和分析非常重要。本文将整理Pandas中DataFrame的常用函数。

1. 创建DataFrame

使用pandas.DataFrame()函数可以创建一个空的DataFrame,也可以用其它数据类型创建DataFrame。

示例1:创建一个空的DataFrame

import pandas as pd

df = pd.DataFrame()
print(df)

输出为空的DataFrame:

Empty DataFrame
Columns: []
Index: []

示例2:用列表创建DataFrame

import pandas as pd

data = {'name':['Tom', 'Jack', 'Mary'],
        'age':[20, 25, 30],
        'gender':['M', 'M', 'F']}
df = pd.DataFrame(data)
print(df)

输出如下:

   name  age gender
0   Tom   20     M
1  Jack   25     M
2  Mary   30     F

2. 查看DataFrame

查看DataFrame的基本信息、行和列的数据。

2.1. 查看DataFrame的基本信息

使用df.info()可以查看DataFrame的基本信息,包括列名、行数、列数、数据类型和每列的非空值数等。

示例:

import pandas as pd

data = {'name':['Tom', 'Jack', 'Mary'],
        'age':[20, 25, 30],
        'gender':['M', 'M', 'F']}
df = pd.DataFrame(data)

print(df.info())

输出字段的基本信息如下:

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype 
---  ------  --------------  ----- 
 0   name    3 non-null      object
 1   age     3 non-null      int64 
 2   gender  3 non-null      object
dtypes: int64(1), object(2)
memory usage: 200.0+ bytes
None

2.2. 查看DataFrame的行和列

使用df.head()可以查看DataFrame的前几行,使用df.tail()可以查看DataFrame的后几行。同时,使用df['column_name']df.column_name可以查看DataFrame中指定列的数据。

示例:

import pandas as pd

data = {'name':['Tom', 'Jack', 'Mary'],
        'age':[20, 25, 30],
        'gender':['M', 'M', 'F']}
df = pd.DataFrame(data)

# 查看前两行
print(df.head(2))

# 查看最后一行
print(df.tail(1))

# 查看'age'这一列
print(df['age'])

# 查看'name'这一列,两种表示方式等价
print(df.name)

输出如下:

   name  age gender
0   Tom   20     M
1  Jack   25     M
  name  age gender
2  Mary   30     F
0    20
1    25
2    30
Name: age, dtype: int64
0     Tom
1    Jack
2    Mary
Name: name, dtype: object

3. DataFrame的统计函数

使用Pandas可以方便地对DataFrame进行一些统计分析。

3.1. describe

使用df.describe()函数可以查看DataFrame中数值型列的基本统计量,包括计数、平均值、标准差、最小值、25%分位数、50%分位数、75%分位数、最大值等。

示例:

import pandas as pd

data = {'name':['Tom', 'Jack', 'Mary'],
        'age':[20, 25, 30],
        'gender':['M', 'M', 'F']}
df = pd.DataFrame(data)

print(df.describe())

输出如下:

             age
count   3.000000
mean   25.000000
std     5.773503
min    20.000000
25%    22.500000
50%    25.000000
75%    27.500000
max    30.000000

3.2. mean和std

使用df.mean()df.std()分别计算DataFrame中每列的平均值和标准差。

示例:

import pandas as pd

data = {'name':['Tom', 'Jack', 'Mary'],
        'age':[20, 25, 30],
        'gender':['M', 'M', 'F']}
df = pd.DataFrame(data)

print(df.mean())
print(df.std())

输出如下:

age    25.0
dtype: float64
age    5.773503
dtype: float64

4. 数据的排序、合并、分组和聚合

4.1. 排序

使用df.sort_values('column_name', ascending=True/False)可以按指定列的值进行排序,可以选择升序或降序排列。

示例:

import pandas as pd

data = {'name':['Tom', 'Jack', 'Mary'],
        'age':[20, 25, 30],
        'gender':['M', 'M', 'F']}
df = pd.DataFrame(data)

# 按年龄排序,升序
print(df.sort_values('age', ascending=True))

# 按年龄排序,降序
print(df.sort_values('age', ascending=False))

输出如下:

   name  age gender
0   Tom   20     M
1  Jack   25     M
2  Mary   30     F
   name  age gender
2  Mary   30     F
1  Jack   25     M
0   Tom   20     M

4.2. 合并

使用pd.concat([df1, df2])可以沿着指定轴将多个DataFrame合并到一起,可以选择是纵向合并还是横向合并。

示例:

import pandas as pd

data1 = {'name':['Tom', 'Jack', 'Mary'],
         'age':[20, 25, 30]}
df1 = pd.DataFrame(data1)

data2 = {'gender':['M', 'M', 'F']}
df2 = pd.DataFrame(data2)

# 纵向合并
print(pd.concat([df1, df2], axis=1))

# 横向合并
print(pd.concat([df1, df2], axis=0))

输出如下:

   name  age gender
0   Tom   20      M
1  Jack   25      M
2  Mary   30      F
   name   age gender
0   Tom  20.0    NaN
1  Jack  25.0    NaN
2  Mary  30.0    NaN
0   NaN   NaN      M
1   NaN   NaN      M
2   NaN   NaN      F

4.3. 分组和聚合

使用df.groupby('column_name').agg('function')可以按指定列的值进行分组,并应用相应的聚合函数。例如,可以计算每个性别中年龄的平均值和最大值等。

示例:

import pandas as pd

data = {'name':['Tom', 'Jack', 'Mary', 'Jim', 'Amy', 'Jane'],
        'age':[20, 25, 30, 22, 27, 28],
        'gender':['M', 'M', 'F', 'M', 'F', 'F']}
df = pd.DataFrame(data)

# 按性别分组,计算年龄的平均值和最大值
print(df.groupby('gender').agg(['mean', 'max'])['age'])

输出如下:

             mean  max
gender               
F       28.333333   30
M       22.333333   25

5. 数据的读取和写入

Pandas支持多种数据格式的读取和写入,包括csv、excel、json等常见数据格式。使用pd.read_xxx()函数读取数据,使用df.to_xxx()函数写入数据。

示例:

import pandas as pd

# 读取csv格式数据
data = pd.read_csv('data.csv')

# 写入excel格式数据
data.to_excel('data.xlsx', index=False)

以上是Pandas中DataFrame基本函数的整理,希望对大家的学习和使用有所帮助。