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基本函数的整理,希望对大家的学习和使用有所帮助。